在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

我正在使用R。我在这里找到了有关在R中创建空数据帧的链接:

我试着做类似的事情:

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)