[英]Row wise matrix operations in R
最近我遇到了data.table
包。 我仍然不確定如何進行逐行矩陣運算。 它最初是為了處理此類操作嗎? 例如,什么是 data.table 相當於apply(M,1,fun)
?
fun
應該將向量作為參數,例如mean
、 median
或mad
。
我認為您正在尋找:=
運算符(請參閱?':='
)。 下面是一個簡短的示例和與mapply
函數的比較(我希望我正確應用了mapply
函數;我現在只使用 data.tables,所以對此沒有任何承諾;但是,data.table 的方式仍然很快而且很方便我的意見很容易記住):
library(data.table)
> df <- data.frame(ID = 1:1e6,
+ B = rnorm(1e6),
+ C = rnorm(1e6))
> system.time(x <- mapply(foo, df$B, df$C))
user system elapsed
4.32 0.04 4.38
> DT <- as.data.table(df)
> system.time(DT[, D := foo(B, C)])
user system elapsed
0.02 0.00 0.02
> all.equal(x, DT[, D])
[1] TRUE
發布我的答案后,我不確定這是否是您正在尋找的。 我希望是這樣,如果不是,請提供更多詳細信息(例如,您是否有許多列要應用函數,而不僅僅是我的示例中的兩個?)。 無論如何,這篇SO 帖子可能會讓您感興趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.