【发布时间】:2021-11-30 01:51:33
【问题描述】:
我只是在 for 中做一个 for 以使用以下代码从不同的 csv 文档读取到 R 中的元素列表中,我是从两个不同的变量中获取的,频率类型 freq <- c('4', '8', '13', '38','N_4','N_8','N_13','N_38') 和值的类型 @ 987654328@。这两个字符串变量用于在相应的 csv 中命名,如在图像中看到的工作目录中所示。
我正在使用以下代码从同一目录中读取。
#Prepare data options
freq <- c('4', '8', '13', '38','N_4','N_8','N_13','N_38')
typ <- c('PE','QS')
dataintra <- list()
for (j in 1:2){
for (k in 1:8){
dataintra[[j*k]] <- read.csv(sprintf('M1_PredErr_Results_%s_%s.csv', typ[j], freq[k]), sep=',', header=TRUE)
}
}
问题是,虽然我期待一个完整列表的列表,但我发现不同的列表编号为 NULL,如下面的屏幕截图所示。
试图理解迭代背后的逻辑,for-for 以一种奇怪的方式跳跃,奇数与偶数相比,这使得从 9 到 15 的赔率无法完成。我正在附加列表中每个元素的迭代顺序。
我想了解为什么 for-for 中的 R 具有这种不稳定的行为,以及这样做的正确方法是什么。我可以考虑其他效率较低的方法来做到这一点,例如制作一个索引向量,并附有iteration <- c('PE_4', 'PE_8', 'PE_13', 'PE_38','PE_N_4','PE_N_8','PE_N_13','PE_N_38','QS_4', 'QS_8', 'QS_13', 'QS_38','QS_N_4','QS_N_8','QS_N_13','QS_N_38') 的两个特征,这很成功,但如果有人能提供帮助,我真的很想了解其中的逻辑。
提前致谢!
【问题讨论】:
-
你知道
j*k是什么意思吗? -
您在逻辑中看到多个错误的影响: 1.
dataintra中的哪个元素分配给 j = 2 和 k = 1? which for j = 1 and k = 2. 2. 你认为你会如何曾经在你的 for-for 循环中得到索引 9?