这是我的代码:
library(foreach)
foreach (i = 1:5, .combine = 'list') %:%
foreach (j = 1:10, .combine = 'rbind') %do% {
cbind(round(rnorm(1),4), paste(i, j, sep = '.'), LETTERS[i+j])
}
我想看到的是一个包含五个元素的列表,其中每个元素都是由内循环创建的10行数据框。
[[1]]数据帧#1
[[2]]数据帧#2
[[3]]数据帧#3
等
相反,输出是包含两个元素的嵌套列表,如下所示:
[[1]] 2元素列表
[[1]] [[1]] 2元素列表
[[1]] [[1]] [[1]] 2元素列表
[[1]] [[1]] [[1]] [[1]]数据帧#1
[[1]] [[1]] [[1]] [[2]]数据帧#2
[[1]] [[1]] [[2]]数据帧#3
[[1]] [[2]]数据帧#4
[[2]]数据帧#5
如何使foreach循环正确附加?
答案 0 :(得分:0)
尝试:
library(foreach)
foreach (i = 1:5) %do% {
foreach (j = 1:10, .combine = 'rbind') %do%
cbind(round(rnorm(1),4), paste(i, j, sep = '.'), LETTERS[i+j])
}
#> [[1]]
#> [,1] [,2] [,3]
#> [1,] "-1.7924" "1.1" "B"
#> [2,] "0.822" "1.2" "C"
#> [3,] "0.2779" "1.3" "D"
#> [4,] "2.0711" "1.4" "E"
#> [5,] "1.2373" "1.5" "F"
#> [6,] "-0.8168" "1.6" "G"
#> [7,] "0.0823" "1.7" "H"
#> [8,] "-1.6213" "1.8" "I"
#> [9,] "-0.7107" "1.9" "J"
#> [10,] "-1.9076" "1.10" "K"
#>
#> [[2]]
#> [,1] [,2] [,3]
#> [1,] "0.5223" "2.1" "C"
#> [2,] "0.3647" "2.2" "D"
#> [3,] "-1.0026" "2.3" "E"
#> [4,] "2.0969" "2.4" "F"
#> [5,] "-1.2028" "2.5" "G"
#> [6,] "-0.9095" "2.6" "H"
#> [7,] "1.543" "2.7" "I"
#> [8,] "-0.3364" "2.8" "J"
#> [9,] "0.9423" "2.9" "K"
#> [10,] "0.5551" "2.10" "L"
#>
#> [[3]]
#> [,1] [,2] [,3]
#> [1,] "-1.4515" "3.1" "D"
#> [2,] "-1.9702" "3.2" "E"
#> [3,] "0.458" "3.3" "F"
#> [4,] "1.7234" "3.4" "G"
#> [5,] "0.3744" "3.5" "H"
#> [6,] "-1.2371" "3.6" "I"
#> [7,] "-0.1577" "3.7" "J"
#> [8,] "1.2072" "3.8" "K"
#> [9,] "-0.1143" "3.9" "L"
#> [10,] "-1.6081" "3.10" "M"
#>
#> [[4]]
#> [,1] [,2] [,3]
#> [1,] "-1.0778" "4.1" "E"
#> [2,] "1.2267" "4.2" "F"
#> [3,] "0.2161" "4.3" "G"
#> [4,] "-0.3156" "4.4" "H"
#> [5,] "-0.0215" "4.5" "I"
#> [6,] "0.5515" "4.6" "J"
#> [7,] "1.2866" "4.7" "K"
#> [8,] "-0.774" "4.8" "L"
#> [9,] "-0.9134" "4.9" "M"
#> [10,] "0.315" "4.10" "N"
#>
#> [[5]]
#> [,1] [,2] [,3]
#> [1,] "0.3514" "5.1" "F"
#> [2,] "1.2512" "5.2" "G"
#> [3,] "0.7572" "5.3" "H"
#> [4,] "-0.9727" "5.4" "I"
#> [5,] "-0.3072" "5.5" "J"
#> [6,] "0.3907" "5.6" "K"
#> [7,] "-0.5655" "5.7" "L"
#> [8,] "-0.8005" "5.8" "M"
#> [9,] "-0.6386" "5.9" "N"
#> [10,] "0.0811" "5.10" "O"
由reprex package(v0.3.0)于2020-09-21创建
答案 1 :(得分:0)
使用基数R作为替代:
.then(addScriptsToPackageJson)