我正在使用下面的数据集。
Date Depth Magnitude
9/11/14 0.1 19.64
9/11/14 1 19.64
9/11/14 2 19.63
9/11/14 4 19.57
9/11/14 5.5 19.3
9/11/14 7 16.5
9/11/14 9 11.31
9/11/14 11 10.11
9/11/14 13 9.31
9/11/14 15 9.03
9/11/14 16.9 9.03
9/16/14 0.1 19.87
9/16/14 1 19.17
9/16/14 2 18.91
9/16/14 4 18.18
9/16/14 5.5 17.53
9/16/14 7 14.29
9/16/14 9 10.81
9/16/14 11 9.88
9/16/14 13 9.22
9/16/14 15 9.11
9/16/14 16.9 8.98
如您所见,在两个不同日期的给定深度处存在值。我想用dplyr做的是计算每个深度的两个日期之间“幅度”的变化。例如,在深度0.1处,幅度变化19.87 - 19.64 = 0.23。我想为所有深度做这件事。
我可以使用中间变量来做到这一点,但它非常笨重:
FirstDate <- MyData %>% filter(Date == "9/11/14")
SecondDate <- MyData %>% filter(Date == "9/16/14")
SecondDate$Magnitude - FirstDate$Magnitude
我确信有更优雅的dplyr式方式来实现这一目标。有什么建议吗?
答案 0 :(得分:3)
您可以按Depth
MyData %>%
group_by(Depth) %>%
summarise(diff(Magnitude))
# Depth diff(Magnitude, 1)
# (dbl) (dbl)
# 1 0.1 0.23
# 2 1.0 -0.47
# 3 2.0 -0.72
# 4 4.0 -1.39
# 5 5.5 -1.77
# 6 7.0 -2.21
# 7 9.0 -0.50
# 8 11.0 -0.23
# 9 13.0 -0.09
# 10 15.0 0.08
# 11 16.9 -0.05
if(actor.isRemoved) {
// enter code here
}