根据定义的值选择数据帧中的行

时间:2017-07-07 12:41:37

标签: r dataframe apply

我有一年的温度记录。我需要选择前面有五行的特殊行(天)(取五天的平均值),然后选择所选组的平均值。这是我的数据框和我应用的以下代码,但没有用。

Day  T.m
1      22  
2      21
3      34
4      28
5      14
6      7 
7      12
8      22
9      11
10     12
11     14
12     3
13     4
14     11
15     16

a <- c(8, 12,14)

apply(DF [c((a-5):a),2], 1, mean) 

1 个答案:

答案 0 :(得分:0)

我们可以使用mapply

mapply(function(x, y) mean(DF[[2]][x:y]), a-5, a)
#[1] 19.500000 12.333333  9.166667

或矢量化方法

tapply(DF[[2]][rep(a-5 , each = 6) + 0:5], rep(1:3, each = 6), FUN = mean)
#        1         2         3 
#19.500000 12.333333  9.166667