将具有不完整观察的行添加到data.frame

时间:2011-03-08 21:49:52

标签: r dataframe

假设我有以下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

我对其他用户如何处理此事感兴趣。

2 个答案:

答案 0 :(得分:3)

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

OR

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

答案 1 :(得分:2)

另一种方法可能是在rbind.fill包中使用plyr

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

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

head(foobar)