动态创建和编辑数据框列表

时间:2015-10-17 00:04:11

标签: r dataframe

我有几个字符串的列表,我需要从中创建一个相同数据帧的列表。 例如,字符串是a-d。列表应该是

[1] xa
[2] xb
[3] xc
[4] xd

其中每个元素都是一个数据帧。每个数据框的列都应该从另一个列表中命名(列名在数据帧中是相同的)

strings <- c("a", "b", "c", "d")
DFList <- list()
for (i in 1:4){
  DFList <- c(DFList,
              assign(paste0("x",strings[i]),
                     data.frame(matrix(0,ncol=5,nrow=0))))
}

不起作用。它返回4个数据帧,以及20个元素(4 * 5列)的列表。

在创建它们之后,我需要能够在稍后的脚本中为这些数据帧中的某些数据帧添加行,这也是我无法弄清楚的。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以将replicatelapplysetNames

一起使用
setNames(replicate(4, data.frame(matrix(0,4,5)), simplify=FALSE), paste0("x", strings))

data.frames的默认列名是&#34; X1&#34;,&#34; X2&#34;等。因此,如果您有另一个列的名称列表,请将其包含在另一个setNames中,例如setNames(data.frame(...), otherNames)

lapply语法非常相似,

setNames(lapply(1:4, function(i) data.frame(matrix(0,4,5))), paste0("x", strings))