2010-04-17 4 views
2

나는 이것이 쉽다는 것을 확신합니다. 그러나 지금 당장은 그것을 이해할 수 없습니다.벡터를 기반으로 데이터 프레임에 여러 변수를 추가하십시오.

는 기본적으로 : 나는 변수의 긴 벡터가 :

names <- c("first","second", "third") 

나는 일부 데이터를 가지고, 그리고 지금 변수를 추가해야합니다. 할 수있는 일 :

그러나 긴 목록이 있기 때문에 나는 자동화 된 솔루션을 원합니다. 이것은 작동하지 않습니다.

for (i in 1:length(names)) (paste("data$", names[i],sep="") <- NA) 

I이 원하는 이유는, 내가 수직 하나는 가지고 있어야 모든 변수가없는 dataframes에 병합해야한다는 것입니다. 당신은 대신에 $의 브라켓을 사용하여 이름에 대한 변수를 사용하여 열을 액세스 할 수있는 사전

답변

3

감사합니다.

for (name in names) data[name] <- NA 

하지만 모양 변경 패키지 (또는 plyr)에서 rbind.fill()을 살펴볼 수 있습니다. 루프 필요가 없습니다 당신이

?`[<-.data.frame` 

에 예에서 볼 수 있듯이이 도움이

희망, 에티엔 느

+0

완벽한 - 감사합니다 Etiennebr !!! - 작동합니다. – Andreas

+0

rbind.fill은 훌륭합니다. –

3

, 당신은 할 수

data[names] <- NA 

예 :

> (data <- data.frame(x=1:3, y=letters[1:3])) 
    x y 
1 1 a 
2 2 b 
3 3 c 
> data[names] <- NA 
> data 
    x y first second third 
1 1 a NA  NA NA 
2 2 b NA  NA NA 
3 3 c NA  NA NA 
+0

마렉에게 감사드립니다. 이것은 엄밀히 말하면 에티엔 느 (Etiennebr)이라는 더 좋은 대답입니다. 그러나 그녀는 rbind.fill를주고 - 빠르다. 그래서 나는 그녀의 대답을 받아 들였다. 하지만 나는 계속 배우고있다 :-) – Andreas

관련 문제