如何将N个命名的空数据帧初始化为R中的列表?

Ern*_*nie 5 r dataframe

我想初始化N个命名的空数据帧,每个数据帧中有X行和Y列,并将它们放在一个列表中.稍后我将通过添加计算向量来填充它们.这是我所知道的一个新手问题,但是如何做到这一点呢?例如:

my.names <- c("G", "H", "J")
N <- 3
my.list <- ???  ## how?
Run Code Online (Sandbox Code Playgroud)

(根据回复编辑...)我采用这种方法的原因是我有一个很大的循环,每次循环都会创建N个向量.我需要在每次迭代时保存这些结果.我打算做以下事情:

for(i in 1:N) my.list[[i]] <- my.vec[i]
Run Code Online (Sandbox Code Playgroud)

在循环中的每个传递.3D数据框或矩阵也可以做同样的事情.

Fra*_*ank 7

也许你想初始化一个三维array而不是?

myarr <- array(,dim=c(3,5,10))
for (j in 1:5) for (k in 1:10) myarr[,j,k] <- rnorm(3)
Run Code Online (Sandbox Code Playgroud)

空data.frames列表.我不认为有一个很好的理由来初始化data.frames列表,但是这里是如何做到的:

"空"data.frame由data.frame()以下内容创建:

setNames(replicate(3,data.frame()),my.names)
# $G
# data frame with 0 columns and 0 rows

# $H
# data frame with 0 columns and 0 rows

# $J
# data frame with 0 columns and 0 rows
Run Code Online (Sandbox Code Playgroud)

包含行和列的data.frame必须具有一些值,例如NA:

nr  <- 4
nc  <- 4
ndf <- length(my.names)
setNames(replicate(ndf,as.data.frame(matrix(,nr,nc)),simplify=FALSE),my.names)
Run Code Online (Sandbox Code Playgroud)