我看到這個問題在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