2017-09-26 3 views
0

몇 개의 변수가 다른 데이터 프레임이 몇 개 있습니다. 대부분 그들은 동일합니다. 루프에서 변수를 준비하고 싶습니다. 따라서 모든 모든 데이터 프레임에 대해 개별 변수를 별도로 지정할 필요가 없습니다. 그러나 나는 몇 가지 문제를 겪고있다.R 프레임의 데이터 프레임 변수를 반복합니다.

clist <- c("data", "data_error", "data_RT") 

은 내가 먼저

for (i in clist) { 
i$ID <- as.factor(i$ID) 
i$TMS <- as.factor(i$TMS) 
i$bias<- as.numeric(i$bias) 
... } 

(가) 내가 준비하려는 모든 변수를 통해 루프 시도 내 dataframes의 이름 목록을했다. 그러나 이것은 불가능하며 내가 말하는 오류 메시지가 :

Error in i$ID : $ operator is invalid for atomic vectors 

내가 도움을 구글을 시도하지만 :(당신이 날 내가 뭘하는지 이해하는 데 도움이 수를 위해 나는 설명을 이해하지 못했다 잘못된 방법 나는 그것을 해결할 수

+1

$ -operator가 동적으로 작동하지 않습니다. i [, "ID"] <- as.factor (i [, "ID"]) .... –

+1

또한 clist의 dataframes는 object_names가 아니라 문자열이어야합니다. –

+0

안녕하세요, Andre! 힌트를 가져 주셔서 감사합니다! 그러나 여전히 오류가 발생합니다. 나는 그것을 다음과 같이 변경했다 :'clist <- c (data, data_error, data_RT) (clist) { i [, "ID"] <- as.factor (i [, "ID"]) } '. ['.default' (i,, "ID")의 오류 : 치수의 개수가 잘못되었습니다. "라고 알려줍니다. "data", "ID"] <- as.factor (data [, "ID"])'와 같이 "i"를 "data" 그것은 작동합니까 ... 치수 불일치가 어디서 생길 수 있는지에 대한 생각은 무엇입니까? – Inkling

답변

2

당신은 이름의 벡터 대신 dataframes의 목록을 사용할 수 있습니다?

clist <- list(data, data_error, data_RT) 

그런 다음 목록을 반복 :

for (i in 1:length(clist)) { 
clist[[i]]$ID <- as.factor(clist[[i]]$ID) 
clist[[i]]$TMS <- as.factor(clist[[i]]$TMS) 
clist[[i]]$bias<- as.numeric(clist[[i]]$bias) 
... } 

그 후, 당신은 당신의 지구 환경에 다시 dataframes을 넣어

list2env(clist,globalenv()) 

를 사용할 수 있습니다. 그래도 목록에 넣어 두는 것이 좋습니다.

관련 문제