0
我剛接觸data.table包。 我正在處理一個大的data.table(60列,900萬行) ,並希望在所有列中用0替換所有負值。Data.Table:通過引用有條件地更新.SD中的值
我目前的解決辦法是:
dt2 <- dt[, lapply(.SD,function(x) {ifelse(x < 0,0,x)})]
這需要約。每列8個。 我想使用:=運算符並跳過該函數使其更快。 但我不知道如何能夠參考.SD
所選的當前列。
dt[, lapply(.SD, .SD[<0] := 0]
我該怎麼做?
謝謝akrun! 第二個選項已經快了4倍。 說實話,這個「定向」仍然超出我目前的知識水平。 你能解釋一下那裏發生了什麼,所以我可以將它集成到我的代碼中並測試它嗎? –
@MarioKreutzfeldt我更新了一些描述的帖子。希望能幫助到你 – akrun