2011-10-21 7 views
0

문자열 ("b")을 포함하는 변수 (x)가 있습니다. 이 문자열은 데이터 프레임 (ABC)에 포함 된 변수의 이름을 제공합니다. get() 함수를 사용하여 데이터 프레임에서 변수 값을 검색하려고하면 "object not found"오류가 발생합니다.데이터 프레임에서 get() 사용

a <- 1 
b <- 2 
c <- 3 
ABC <- data.frame(a,b,c) 
x <- "b" 

이 작동 :

get(x) 
    [1] 2 

를이 오류 제공하는 동안 :이 작동하지만

get(paste("ABC$",x,sep="")) 
    Error in get(paste("ABC$", x, sep = "")) : object 'ABC$b' not foundhere 

을 : 내가 볼 수있는 변수 x를 사용할 수있는 방법

ABC$b 
    [1] 2 

을 변수 b의 값은?

미리 감사드립니다.

> get(x, ABC) 
[1] 2 

또는

> ABC[[x]] 
[1] 2 

답변

5

당신이 만드는 것들을 너무 복잡 :

+0

우, 너무 바보 같았습니다 ... 고마워요! 하지만 적어도 변명의 여지가 있습니다 : 어떤 이유로, 변수 x (read.table을 사용하는 외부 소스에서 온)는 숫자 모드를가집니다. 물론 이것은 "object not found error"를 발생시킵니다. ABC [[as.character (x)]]를 사용하면 모든 것이 정상입니다. 고마워, 또! – Kilian

+0

또한 x가 데이터 프레임의 유효한 이름을 저장하는지 확인하려면 "x % in % names (ABC)"입니다. – Spacedman

2

이 시도.

ABC[,x] 

또는

ABC[[x]] 

는 잘 작동합니다.

관련 문제