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