您可以使用lapply
,sapply
或vapply
具有類似的性能。 lapply
和vapply
比sapply
快一點,因爲sapply
是lapply
的包裝,它試圖使結果更漂亮/更簡單。
microbenchmark::microbenchmark(
vapply(c(1,2, 3), function(x) rt(2, df = 1, ncp=x), numeric(2L)),
sapply(1:3, function(x) rt(2, df = 1, ncp = x)),
lapply(1:3, function(x) rt(2, df = 1, ncp = x)),
vec.rt(2, df=1, ncp=1:3))
#Unit: microseconds
# expr min lq mean median uq max neval cld
#vapply 27.121 37.6095 51.61055 39.8825 42.4570 1226.199 100 a
#sapply 51.438 58.1725 72.89417 60.9150 63.4850 1255.270 100 ab
#lapply 29.484 34.0670 59.78256 36.8160 39.0755 2326.401 100 ab
#vec.rt 95.511 101.6985 106.15785 105.0770 108.2700 189.312 100 b
感謝您的比較!要記住的一點是'sapply'是'lapply'的封裝,並且有一個額外的簡化步驟,將輸出轉換爲矩陣,這就增加了它的運行時間。 –