我正在尝试向数据框中添加一列,其中包含另一列接下来十行的最大值(高)。在下面的示例中,第一行的最大值为 92.83。我刚开始使用 R,但在使用时遇到了一些问题。
Date_Time High Max_Next10
2014-06-30 08:35:00 92.55 92.83
2014-06-30 08:40:00 92.69 92.83
2014-06-30 08:45:00 92.63 92.83
2014-06-30 08:50:00 92.83 92.80
2014-06-30 08:55:00 92.80 92.76
2014-06-30 09:00:00 92.71 92.76
2014-06-30 09:05:00 92.76 92.72
2014-06-30 09:10:00 92.72 92.75
2014-06-30 09:15:00 92.70 92.75
2014-06-30 09:20:00 92.70 92.75
2014-06-30 09:25:00 92.70 92.75
2014-06-30 09:30:00 92.63 92.76
2014-06-30 09:35:00 92.63 92.76
2014-06-30 09:40:00 92.57 N/A
2014-06-30 09:45:00 92.59 N/A
2014-06-30 09:50:00 92.58 N/A
2014-06-30 09:55:00 92.72 N/A
2014-06-30 10:00:00 92.75 N/A
2014-06-30 10:05:00 92.69 N/A
2014-06-30 10:10:00 92.66 N/A
2014-06-30 10:15:00 92.75 N/A
2014-06-30 10:20:00 92.76 N/A
2014-06-30 10:25:00 92.72 N/A
最佳答案
有一个名为 zoo
的包和一个名为 rollmax
的函数
只需简单一行即可获得结果。
df$Max_Next10=zoo::rollmax(df$High, 10, na.pad = TRUE,align='left')
> df
Date_Time High Max_Next10
1 6/30/2014 8:35 92.55 92.83
2 6/30/2014 8:40 92.69 92.83
3 6/30/2014 8:45 92.63 92.83
4 6/30/2014 8:50 92.83 92.83
5 6/30/2014 8:55 92.80 92.80
6 6/30/2014 9:00 92.71 92.76
7 6/30/2014 9:05 92.76 92.76
8 6/30/2014 9:10 92.72 92.72
9 6/30/2014 9:15 92.70 92.75
10 6/30/2014 9:20 92.70 92.75
11 6/30/2014 9:25 92.70 92.75
12 6/30/2014 9:30 92.63 92.75
13 6/30/2014 9:35 92.63 92.76
14 6/30/2014 9:40 92.57 92.76
15 6/30/2014 9:45 92.59 NA
16 6/30/2014 9:50 92.58 NA
17 6/30/2014 9:55 92.72 NA
18 6/30/2014 10:00 92.75 NA
19 6/30/2014 10:05 92.69 NA
20 6/30/2014 10:10 92.66 NA
21 6/30/2014 10:15 92.75 NA
22 6/30/2014 10:20 92.76 NA
23 6/30/2014 10:25 92.72 NA
关于r - 为接下来的最多 10 行添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44861845/