在R中创建/填充空数据帧
我正在使用R。我在这里找到了有关在R中创建空数据帧的链接: 我试着做类似的事情:在R中创建/填充空数据帧,r,dataframe,data-manipulation,populate,R,Dataframe,Data Manipulation,Populate,我正在使用R。我在这里找到了有关在R中创建空数据帧的链接: 我试着做类似的事情: df <- data.frame(Date=as.Date(character()), country=factor(), total=numeric(), stringsAsFactors=FALSE) 我得到以下错误: Error in `$<-.data.frame`(`*tmp*`, t
df <- data.frame(Date=as.Date(character()),
country=factor(),
total=numeric(),
stringsAsFactors=FALSE)
我得到以下错误:
Error in `$<-.data.frame`(`*tmp*`, total, value = 7) :
replacement has 1 row, data has 0
df[1, "total"] <- rnorm(100,100,100)
Error in `[<-.data.frame`(`*tmp*`, 1, "total", value = c(-79.4584309347689, :
replacement has 100 rows, data has 1
“$中的错误选项是指定行索引
df[1, "total"] <- 7
问题是,当我们选择一个列并在0行数据集上赋值时,它不会自动为其他列扩展该行。通过指定行索引,其他列将自动填充默认值
NA
关于第二个问题(已更新),标准data.frame列是向量
,并且向量
的长度应与我们指定的索引相同。假设我们要扩展到100行,相应地更改索引
df[1:100, "total"] <- rnorm(100, 100, 100) # length is 100 here
dim(df)
#[1] 100 3
简而言之,lhs
的长度应与rhs
的长度相同。另一种情况是,当我们从不同的数据集进行赋值时
df[seq_along(aa$bb), "total"] <- aa$bb
df[seq_沿途(aa$bb),“总计”]但为什么这是必要的?我也试过:df[1,“total”]@Noob您在一行上添加了100个元素。它可以是一个列表,即列表(rnorm(100100100))
。请注意,标准data.frame列是一个向量
,它假定向量的长度与行的索引相同。如果需要添加100行,请使用df[1:100,“total”]感谢您的帮助。最后一个问题:假设已经存在另一个数据帧(称为“aa”,列为“bb”)。这样行吗?df[1,“total”]@Noob取决于您可能需要的长度“bb”df[seq_(aa$bb),“total”]
df[1:100, "total"] <- rnorm(100, 100, 100) # length is 100 here
dim(df)
#[1] 100 3
df[1, "total"] <- list(rnorm(100, 100, 100))
df[seq_along(aa$bb), "total"] <- aa$bb
df <- data.frame(total = aa$bb)