2010-06-22 107 views
3

有沒有辦法更有效地編寫以下語句?加速是一個數據幀。將R代碼轉換爲R風格

accel[[2]]<- accel[[2]]-weighted.mean(accel[[2]]) 
accel[[3]]<- accel[[3]]-weighted.mean(accel[[3]]) 
accel[[4]]<- accel[[4]]-weighted.mean(accel[[4]]) 

回答

4

替代

accel[2:4] <- lapply(accel[2:4], function(x) x-weighted.mean(x)) 
2

這是一種做法。

accel[,2:4] = t(t(accel[,2:4]) - apply(accel[,2:4], 2, weighted.mean)) 

更正如下馬雷克現貨 - 謝謝。

士氣:總是檢查您的R代碼發佈之前!

+0

這給了錯誤的結果。矩陣中的減法按列號逐行排列。 – Marek 2010-06-23 07:02:54