【发布时间】:2020-03-05 02:45:51
【问题描述】:
对 R 来说还算新,因此欢迎任何指导。
目标:我正在尝试在一个简短的脚本中创建数百个数据框。它们遵循一种模式,所以我认为一个 For 循环就足够了,但 data.frame 函数似乎忽略了变量的变量性质,读取它的出现。这是一个例子:
# Defining some dummy variables for the sake of this example
dfTitles <- c("C2000.AMY", "C2000.ACC", "C2001.AMY", "C2001.ACC")
Copes <- c("Cope1", "Cope2", "Cope3", "Cope4")
Voxels <- c(1:338)
# (Theoretically) creating a separate dataframe for each of the terms in 'dfTitles'
for (i in dfTitles){
i <- data.frame(matrix(0, nrow = 4, ncol = 338, dimnames = list(Copes, Voxels)))
}
# Trying an alternative method
for (i in 1:length(dfTitles))
{dfTitles[i] <- data.frame(matrix(0, nrow = 4, ncol = 338, dimnames = list(Copes, Voxels)))}
这会导致创建一个名为“i”的数据框,在前者中,或者在后者的情况下创建一个 4 列表。有任何想法吗?谢谢!
可能不必要的背景信息:我们正在使用 fMRI 数据进行分析,该分析将运行刺激、大脑体素、大脑区域和参与者之间的相关性。我们正在关联整个矩阵,因此通过参与者 ID 和大脑区域将值(也称为 COPE)分成单独的数据帧将使下一步变得更加容易。在将数据加载并分类到一个大数据框中后,我已经尝试过下一步,这让我很头疼。
【问题讨论】:
-
您声明的错误不可重现。仅将上面显示的 R 命令复制并粘贴到新的 R 会话中,然后编辑您的帖子(如果需要)。谢谢。 :)
-
并修正长度的拼写:
for (i in 1:length(dfTitles) { -
很抱歉;也不熟悉在 StackOverflow 上发帖。我认为我进行了必要的更正,但如果格式仍然古怪,请告诉我。
-
没问题。 :) 你已经有两个答案了。希望其中一个或两个都能解决您的问题。