1
我需要不考慮實際值的特定窗口中的均值和sd。 TTR軟件包中的runMean和runSD將是完美的,但它們會考慮實際值。例如,使用TTR和data.table:滾動平均值和sd不包括使用TTR和data.table的實際值
x<-c(4, 10, 7, 3, 9, 8)
dt<- as.data.table(x)
dt[, ':=' (mean = runMean(x,3), sd = runSD(x,3))]
x mean sd
1: 4 NA NA
2: 10 NA NA
3: 7 7.000000 3.000000
4: 3 6.666667 3.511885
5: 9 6.333333 3.055050
6: 8 6.666667 3.214550
,但預期的結果應該是
x mean sd
1: 4 NA NA
2: 10 NA NA
3: 7 NA NA
4: 3 7.000000 3.000000
5: 9 6.666667 3.511885
6: 8 6.333333 3.055050
我認爲這將是一個方式使用data.table做到這一點,但我不知道知道如何做到這一點。任何幫助將不勝感激,我正在學習data.table。
我得到'runMean( x,3)# [1]不適用7.000000 6.666667 6.333333 6.666667因此,您不清楚爲什麼您認爲data.table的做法不同 – akrun
在第一種情況下,7是(4,10,7 )它包含實際值x = 7。在第二種情況下,7是相同值的平均值(4,10,7),但x的實際值是3. – Chene
請參閱data.table包中的'?shift'。 – Frank