这是我正在尝试做的非常简化的版本。简而言之,我创建了一些我想要执行相同操作的矩阵,就像在循环中一样。在这个例子中,我想打印每个矩阵的摘要,但我不知道如何在for循环中引用矩阵。非常感谢任何帮助:
for (i in 1:3){
x <- paste0('df', i)
assign(x, matrix(sample(1:10, 15, replace = TRUE), ncol = 3))
print(summary(eval(x)))
}
返回(它将'df3'评估为字符串):
Length Class Mode
1 character character
Length Class Mode
1 character character
Length Class Mode
1 character character
如何让它返回以下内容?
V1 V2 V3
Min. : 1.0 Min. :3.0 Min. : 5
1st Qu.: 5.0 1st Qu.:3.0 1st Qu.: 5
Median : 6.0 Median :4.0 Median : 7
Mean : 5.6 Mean :5.2 Mean : 7
3rd Qu.: 6.0 3rd Qu.:7.0 3rd Qu.: 8
Max. :10.0 Max. :9.0 Max. :10
V1 V2 V3
Min. :2 Min. :1.0 Min. : 4.0
1st Qu.:4 1st Qu.:3.0 1st Qu.: 4.0
Median :7 Median :3.0 Median : 6.0
Mean :6 Mean :3.4 Mean : 6.6
3rd Qu.:8 3rd Qu.:4.0 3rd Qu.: 9.0
Max. :9 Max. :6.0 Max. :10.0
V1 V2 V3
Min. :1.0 Min. : 5.0 Min. :1.0
1st Qu.:2.0 1st Qu.: 6.0 1st Qu.:2.0
Median :6.0 Median : 6.0 Median :3.0
Mean :5.2 Mean : 6.8 Mean :2.4
3rd Qu.:8.0 3rd Qu.: 7.0 3rd Qu.:3.0
Max. :9.0 Max. :10.0 Max. :3.0
答案 0 :(得分:5)
不要使用不同的变量和paste
他们的名字 - 将你的对象放入一个列表中:
x = Map(function (i) matrix(sample(1:10, 15, replace = TRUE), ncol = 3), 1 : 3)
然后对它们执行常见操作也是微不足道的:
Map(summary, x)
Map
将函数映射到列表中。它的操作类似于lapply
and mapply
family of functions。
答案 1 :(得分:1)
我认为您可以使用eval(as.name("df3"))
或get("df3")