1

apply使用族函数或 和 之间的组合do.call与此等效的是什么apply?我想保持简单,并尽可能在一行中:

a <- list(  as.data.frame(matrix(rnorm(12),4,3)),
            as.data.frame(matrix(rnorm(12),4,3)),
            as.data.frame(matrix(rnorm(12),4,3))
         )

l <- list()
for (i in 1:length(a)) {
  l[[i]] <- apply(a[[i]],1,max)
}

b <- do.call(data.frame, l)
4

1 回答 1

2

我会使用sapply这个特定的例子,但是我不知道这个例子对你实际更大的问题有多大的代表性。

> sapply(a, function(x) apply(x, 1, max))
          [,1]      [,2]       [,3]
[1,] 0.5757814 0.9189774  0.6198257
[2,] 0.1836433 0.9438362  0.4179416
[3,] 1.5117812 1.1249309  1.3586796
[4,] 1.5952808 0.5939013 -0.1027877

sapply将尽可能简化为矩阵。如果你想要一个data.frame,只需将输出包装在data.frame.

于 2013-09-09T10:57:14.753 回答