Pairlist 객체
Pairlist 객체
R 언어의 내부 구조에서 중요한 역할을 하는 Pairlist 객체에 대해 설명해 드릴게요. 이번 섹션에서 그 특징과 사용법을 자세히 알아보아요.
본문
2.1.11 Pairlist objects
Pairlist 객체는 Lisp의 dotted-pair 리스트와 비슷해요. R 내부에서 많이 사용되지만, 해석된 코드에서는 거의 눈에 띄지 않아요. 다만 formals가 반환하거나 (예를 들어) pairlist 함수로 만들 수는 있죠. 길이가 0인 pairlist는 NULL인데, 이는 Lisp에서 기대할 수 있는 동시에 길이가 0인 리스트와는 대조적이에요.
이런 객체는 각각 세 개의 슬롯(CAR 값, CDR 값, TAG 값)을 가져요. TAG 값은 텍스트 문자열이고, CAR와 CDR은 각각 리스트의 항목(head)과 나머지(tail)를 나타내는 게 보통이에요. 이때 리스트의 끝은 NULL 객체로 표시하고요. (CAR/CDR 용어는 전통적인 Lisp에서 온 것으로, 원래는 1960년대 초 IBM 컴퓨터의 address register와 decrement register를 가리켰어요.)
Pairlist는 R 언어에서 일반적인 벡터(“리스트”)와 똑같은 방식으로 다뤄져요. 특히 요소에 접근할 때도 같은 [[]] 문법을 사용해요. 일반적인 벡터가 보통 더 효율적이기 때문에 pairlist 사용은 권장되지 않아요(deprecated). R에서 내부 pairlist에 접근할 때는 일반적으로 (부분집합(subset)을 만들 때도 포함해서) 일반적인 벡터로 변환돼요.
아주 드문 경우에 pairlist가 사용자에게 보이기도 해요. 그중 하나가 .Options예요.