我的数据集的形式如下:
df<- data.frame(c("a", "a", "a", "a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "b", "b", "b"),
c(1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2),
c(1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3 , 4, 1, 2, 3, 4),
c(25, 75, 20, 40, 60, 50, 20, 10, 20, 30, 40, 60, 25, 75, 20, 40))
colnames(df)<-c("car", "year", "mnth", "val")
为了清楚我在这里展示它还有:
car year mnth val
1 a 1 1 25
2 a 1 2 75
3 a 1 3 20
4 a 1 4 40
5 a 2 1 60
6 a 2 2 50
7 a 2 3 20
8 a 2 4 10
9 b 1 1 20
10 b 1 2 30
11 b 1 3 40
12 b 1 4 60
13 b 2 1 25
14 b 2 2 75
15 b 2 3 20
16 b 2 4 40
我想补充一个新列tmp
到df
就某一特定行,值tmp
应该是平均df$val
和3个前述值。 的一些例子tmp
在这里显示
#row 3: mean(25,75,20)=40
#row 4: mean(25,75,20,40)=40
#row 5: mean(75,20,40,60)=48.75
#row 16: mean(25,75,20,40)=40
是否有一个有效的方式来做到这一点R中不使用for
-loops?