1

从一个空数据框开始,我需要按如下方式填充数据框: for 循环在每次迭代中生成固定数量的值,我需要添加一个包含该列表中值的新列,并为该列指定一个唯一名称, col_i (其中 i 是循环的第 i 次迭代)。

这(看似简单的任务)如何完成?

4

2 回答 2

5

分段构建数据框的最有效方法是将您的部分存储在预先分配的列表中,然后将它们放在一起。

例如:

num.iters <- 10
l <- vector('list', num.iters) 
for (i in 1:num.iters) {
     l[[i]] <- rnorm(3)                       # the column data
     names(l)[i] <- paste('Col', i, sep='.')  # the column name 
} 
do.call(cbind, l)  # ... if your cols are the same datatype and you want a matrix
data.frame(l)      # otherwise
于 2012-06-21T00:49:53.070 回答
4

有什么问题?cbind

The functions cbind and rbind are S3 generic, with methods for data frames. 
The data frame method will be used if at least one argument is a data frame 
and the rest are vectors or matrices. 

?colnames也可以应用于 data.frames

于 2012-06-21T00:33:35.283 回答