2013-08-27 77 views
1

我有一個數據框(training.set),它是對83個變量的150個觀測值。我想用一些移動平均值來轉換那些列中的82列。問題是結果最終只有150個數值(即1列)。R:如何將移動平均值應用於數據框中的列子集?

我將如何在數據中逐個應用移動平均函數並保持第83列不變?我覺得這很簡單,但我找不到解決方案。

我當前的代碼

# apply moving average on training.set data to 82 of 83 rows 
library(TTR) #load TTR library for SMA functions 
ts.sma <- SMA(training.set[,1:82], n = 10) 
ts.sma 

感謝您的幫助。

回答

1
apply(training.set[,1:82], 2, SMA, n=10) 

請注意,這將您data.frame轉換爲一個矩陣 - 如果你需要的輸出是一個data.frame敷在data.frame(...)

+0

好吧,那很簡單。 2代表什麼?另外,是否有辦法在數據中保留第83列,或者在應用之後是否必須使用c()函數? – zlooop

+0

它告訴'apply'運行'SMA'列式(1 == row-wise)。見'?apply'。 – sgibb

+0

是的,你可以用'83'列'結合'apply'的結果。 –

相關問題