x[1]로 접근하면 인덱스 1까지 선택했고, x[[1]]로 접근하면 인덱스 1의 데이터 값만 선택했습니다. 키와 밸류 형태에서도 데이터를 선택해 보겠습니다.
> # flower는 키, red와 white는 밸류 > x <- list(flower = "rose", color = c("red", "white")) > x $flower [1] "rose" $color [1] "red" "white" > x[1] # x[n] 응용, 인덱스 1(=flower)을 선택 $flower-----인덱스(키)까지 선택됩니다. [1] "rose" > x[[1]] # x[[n]] 응용, 인덱스 1(=flower)의 데이터 값을 선택 [1] "rose" > x$flower # x$key 응용, x[[1]]과 같음 [1] "rose"
x[n]은 x 리스트에 있는 인덱스로 접근합니다. x[[n]]과 x$key는 인덱스(키) 내에 데이터 값으로 접근합니다. 그래서 데이터 값을 직접 선택하려면 x[[n]]이나 x$key를 사용해야 합니다. 요리를 준비하다 보면 토마토 상자째로 운반해야 할 때와 토마토 몇 개만 선택해서 운반해야 할 때가 있습니다. 리스트에서 데이터 선택은 상자 이름표(인덱스)로 접근해서 상자째 선택하느냐(리스트) 토마토(데이터 값)로 접근해서 토마토(데이터 값)만 선택하느냐의 차이라고 생각하면 쉽습니다.
앞서 살펴보았듯이 리스트는 데이터에 접근하고 관리하는 것이 자유롭습니다. 하지만 사용자에게는 이런 점이 오히려 불편하고 어려운 요소가 될 수 있는데, 사용자에게 좀 더 익숙하고 직관적인 데이터 구조가 데이터 프레임입니다.