2011-03-08 14 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' 

OR

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) 
相關問題