如何基于R中缺少的数据在数据帧中创建新行
我想根据数据帧中缺少的数据,向正在使用的数据帧添加新行如何基于R中缺少的数据在数据帧中创建新行,r,R,我想根据数据帧中缺少的数据,向正在使用的数据帧添加新行 year <- c(2001,2001,2002,2002,2003,2004,2004,2005) make <- c('Honda', 'Ford', 'Honda', 'Ford', 'Honda', 'Honda', 'Ford', 'Honda') number_manufactured <- c(10, 20, 15, 47, 14, 19, 35, 9) cars <- data.frame(year
year <- c(2001,2001,2002,2002,2003,2004,2004,2005)
make <- c('Honda', 'Ford', 'Honda', 'Ford', 'Honda', 'Honda', 'Ford', 'Honda')
number_manufactured <- c(10, 20, 15, 47, 14, 19, 35, 9)
cars <- data.frame(year, make, number_manufactured)
下面是一个数据帧示例
year <- c(2001,2001,2002,2002,2003,2004,2004,2005)
make <- c('Honda', 'Ford', 'Honda', 'Ford', 'Honda', 'Honda', 'Ford', 'Honda')
number_manufactured <- c(10, 20, 15, 47, 14, 19, 35, 9)
cars <- data.frame(year, make, number_manufactured)
year这里是一个使用expand.grid
和merge
的基本R方法
# get new data.frame
dfNew <- merge(cars, expand.grid(unique(cars$year), unique(cars$make)),
by.x=c("year", "make"), by.y=c("Var1", "Var2"), all=TRUE)
# fill in 0s
dfNew$number_manufactured[is.na(dfNew$number_manufactured)] <- 0
#获取新的data.frame
dfNewtidyr::complete
对于这类事情很方便。在数据集中列出要为其添加行的变量。您还可以通过fill
列出您要用什么填充其他变量(默认情况下,您会得到NA
)
library(tidyr)
complete(cars, year, make, fill = list(number_manufactured = 0))