我有一个矩阵和一个接受向量并返回矩阵的函数。我想将该函数应用于矩阵的所有行并将所有结果绑定在一起。例如
mat <- matrix(1:6, ncol=2)
f <- function (x) cbind(1:sum(x), sum(x):1)
do.call(rbind, apply(mat, 1, f))
这非常有效,因为返回的矩阵具有不同的行数,因此 apply 返回一个列表。但如果它们碰巧具有相同的行数,则不再起作用:
mat <- f(3)
apply(mat, 1, f)
apply 返回一个矩阵,我无法从中得到我想要的结果。是否可以强制 apply 返回列表或者是否有其他解决方案?
这就是为什么我喜欢plyr
包裹。它有多个--ply
功能都以相同的方式工作。第一个字母对应于您作为输入的内容,第二个方法对应于您作为输出的内容(l
对于列表,a
对于数组,d
对于数据框)。
So the alply()
函数的工作原理类似于apply()
但总是返回一个列表:
alply(mat, 1, f)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)