R-创建具有名称的多个数据帧

时间:2015-03-30 18:33:36

标签: r

我想创建100个名为

的空数据框
  • df1,df2,...,df100。

每个数据框将有2列

  • 我的数据帧dfi具有列号为“yi”和“xi”的列。例如,df5的列名称为y5和x5。
  • 第一列是chracter,第二列是数字。

如何使用R创建此类数据框架。我将非常高兴为您提供帮助。非常感谢。

1 个答案:

答案 0 :(得分:4)

我们可以使用replicate在列表中创建空的'data.frames',并使用Map

更改列名称
n <- 100
lst <- replicate(n,data.frame(y=character(), x=numeric(),
                     stringsAsFactors=FALSE), simplify=FALSE)

names(lst) <- paste0('df', 1:n)
nmy <- paste0('y', 1:n)
nmx <- paste0('x', 1:n)
lst1 <- Map(function(x,y,z) {names(x) <- c(y,z); x}, lst, nmy, nmx)

或者

lst1 <- Map(setNames, lst, as.data.frame(rbind(nmy,nmx)))


str(lst1, list.len=3)
#List of 100
# $ df1  :'data.frame': 0 obs. of  2 variables:
#  ..$ y1: chr(0) 
#  ..$ x1: num(0) 
# $ df2  :'data.frame': 0 obs. of  2 variables:
#  ..$ y2: chr(0) 
#  ..$ x2: num(0) 
# $ df3  :'data.frame': 0 obs. of  2 variables:
#  ..$ y3: chr(0) 
#  ..$ x3: num(0) 
# [list output truncated]