【发布时间】:2013-04-03 07:58:11
【问题描述】:
我有一个数据框 DF,两列 A 和 B 如下所示:
A B
1 0
3 0
4 0
2 1
6 0
4 1
7 1
8 1
1 0
如下所示执行滑动窗口方法。使用:rollapply(DF$B, width=3,by=1) 计算大小为 3 的滑动窗口中 B 列的平均值滑动 1。每个窗口的平均值显示在左侧。
A: 1 3 4 2 6 4 7 8 1
B: 0 0 0 1 0 1 1 1 0
[0 0 0] 0
[0 0 1] 0.33
[0 1 0] 0.33
[1 0 1] 0.66
[0 1 1] 0.66
[1 1 1] 1
[1 1 0] 0.66
output: 0 0.33 0.33 0.66 0.66 1 1 1 0.66
现在,对于 A 列中的每一行/坐标,包含该坐标的所有窗口都被考虑并应保留给出结果的最高平均值,如“输出”列所示。
我需要得到如上所示的输出。输出应该是:
A B Output
1 0 0
3 0 0.33
4 0 0.33
2 1 0.66
6 0 0.66
4 1 1
7 1 1
8 1 1
1 0 0.66
对 R 有帮助吗?
【问题讨论】:
-
(+1) 现在我明白了这个问题。让我试着看看我能不能弄清楚一些事情。还有一件事。我认为您在此编辑中丢失了最终输出“mean_A”。你也可以添加它吗?谢谢。
-
@Arun 现在我添加了 Mean_A。
-
A总是一个序列 1:N?我看不出A中的值对您的计算有何影响。据我了解,这几乎是rollmax(rollmean(B,3),3)。 -
@CarlWitthoft,不完全是。 user1779730,检查我的答案。
-
@CarlWitthoft,希望重新构建的问题有助于理解问题
标签: r dataframe sliding-window