Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于R中缺少的数据在数据帧中创建新行_R - Fatal编程技术网

如何基于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

dfNew
tidyr::complete
对于这类事情很方便。在数据集中列出要为其添加行的变量。您还可以通过
fill
列出您要用什么填充其他变量(默认情况下,您会得到
NA

library(tidyr)
complete(cars, year, make, fill = list(number_manufactured = 0))