我看到这个问题在R邮件列表中被多次询问,但仍然找不到满意的答案。等价于rowMeans()for min()
假设我一个矩阵m
m <- matrix(rnorm(10000000), ncol=10)
我可以得到每行的意思是:
system.time(rowMeans(m))
user system elapsed
0.100 0.000 0.097
但是,
system.time(apply(m,1,min))
user system elapsed
16.157 0.400 17.029
获得每行的最低值取超过100倍的时间,有没有办法加快速度?
我喜欢使用'do.call'。我想到了'pmin',但没有想到一个合适的方法来合并它。所有酷酷的孩子似乎都可以使用'do.call'来实现他们的目标......我需要对此进行一些阅读。 – Chase 2011-06-14 03:08:00
当您希望能够动态地创建函数参数时(通常当通过'...'传递的参数数量未知时)''do.call'派上用场。 – 2011-06-14 03:17:16
很好的答案,谢谢!与pmin.int()它甚至更快一点 – johannes 2011-06-14 03:35:11