[R] Data Frame, List에서 name을 변수로 받는 방법
Laptop
자료형 중 name 속성을 가지는 것들에는 모두 해당될 것 같다.
(Data Frame, List 밖에 몰라서 제목은 그 2개만 썼다.)
아래 소스는 data.frame을 list로 바꿔도 동일한 결과가 나온다.
df <- data.frame(X=1, Y=2, Z=3)
이런식으로 X, Y, Z 라는 name들을 가진 Data Frame이 있다고 하자.
일반적으로 각 값에 접근할 때, $ 기호를 이용하여
이런식으로 실행된다.
단 이게 적용이 되지 않는 경우가 있는데, 바로 아래와 같이 name을 변수로 받을 때이다.
for (i in names(df)){
show(i)
show(df$i)
}
결과를 보면 names(df)에 해당하는 i를 출력했을 때 X, Y, Z는 제대로 출력되지만,
df$i 의 경우 접근하지 못하고 NULL이 출력된다.
이 경우, [[]] 를 대신 사용한다.
소스를 고쳐 다음과 같이 쓰면, 정상적인 결과가 출력된다.
for (i in names(df)){
show(i)
show(df[[i]])
}
꼭 반복문에서만 이런게 아니라, $ 기호는 변수 자체를 받지 못하는 것 같다.
이걸 보면 알 수 있다.
기초적인 문법인 것 같으나, 독학을 하다보니 약간 헤맸다.
0 개의 댓글:
댓글 쓰기