【发布时间】:2013-06-10 13:15:10
【问题描述】:
我有一堆需要转换为数据帧的 R 矩阵,我希望我可以自动化这个过程。
x = matrix(rnorm(100), 10, 10)
y = matrix(rnorm(100), 10, 10)
z = matrix(rnorm(100), 10, 10)
x = as.data.frame(x)
y = as.data.frame(y)
z = as.data.frame(z)
这不起作用:
lapply(c('x', 'y', 'z'), function(i) assign(i, as.data.frame(get(i))))
【问题讨论】:
-
为什么首先需要转换它们?许多运算在矩阵上比在数据帧上更快。
-
你没有把所有的矩阵都放在一个列表中是有原因的吗?
-
@AnandaMahto 我需要在这些数据帧上使用 mapply。在我看来,矩阵不行。
-
@CravingSpirit 这是对
lapply的滥用。*apply系列不适用于您想要更改环境中变量状态的情况。坚持使用 for 循环来处理这些事情,for (name in c('x', 'y', 'x')) {....}。 -
@MatthewPlourde 谢谢,我会这样做的。但事实证明,这也是一个更好地了解 R 环境的好机会。
标签: r data-manipulation