假设我有以下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
我对其他用户如何处理此事感兴趣。
答案 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)