2011-03-08 6 views
3

다음 data.frame 있다고 가정합니다.불완전한 관측치가있는 행을 data.frame에 추가하기.

 foo <- data.frame(ocean=c('Atlantic', 'Pacific'), 
     city=c('Boston', 'San Francisco'), 
     state=c('MA', 'CA'), stringsAsFactors=F) 

세 번째 행을 추가하고 싶지만이 경우 도시를 지정하고 다른 필드를 비워 두십시오.

작동하지 않는 몇 가지 순진한 방법은 다음과 같습니다.

foo$city[3] <- 'Providence' 
# generates an error message about replacement has 3 rows, data has 2 

이것은 또한 오류 메시지를 생성합니다.

rbind(foo, data.frame(city='Providence')) 
# generates an error message, number of columns of arguments do not match 

다른 사용자가이 문제에 접근하는 방법에 관심이 있습니다.

답변

3
foo[3,] <- NA 
foo$city[3] <- 'Providence' 

또는

foo[3,] <- c(NA,'Providence',NA) 
2

또 다른 방법은 plyr 패키지에 rbind.fill을 사용할 수 있습니다.

library(plyr) 
bar <- data.frame(city="Providence", stringsAsFactors=F) 
str(bar) 

foobar <- rbind.fill(foo, bar) 
str(foobar) 

head(foobar)