取两行之间的差异,然后在dplyr管道中绑定_行
编辑:我附加了实际数据并重新解释得更好一些: 我对数据进行了预处理,并将其过滤为仅ntile=1和ntile=5列。它看起来像:取两行之间的差异,然后在dplyr管道中绑定_行,r,dataframe,dplyr,rbind,R,Dataframe,Dplyr,Rbind,编辑:我附加了实际数据并重新解释得更好一些: 我对数据进行了预处理,并将其过滤为仅ntile=1和ntile=5列。它看起来像: # A tibble: 6 x 3 ntile date score <int> <date> <dbl> 1 1 2005-08-31 -2.39 2 1 2005-09-30 0.573 3 1 2005-10-31 -1.61 4 1 2005-11-30
# A tibble: 6 x 3
ntile date score
<int> <date> <dbl>
1 1 2005-08-31 -2.39
2 1 2005-09-30 0.573
3 1 2005-10-31 -1.61
4 1 2005-11-30 5.43
5 1 2005-12-31 0.106
6 1 2006-01-31 6.66
分数之间的差异为-2.39---0.996=-1.394,这是df$分数[df$ntile=='1']-df$分数[df$ntile=='5']的第一个结果。我试图将其应用于所有观察值(对于ntile=1和ntile=5),创建一个新列,使数据如下所示:
# A tibble: 6 x 3
ntile date score
<int> <date> <dbl>
1 1 2005-08-31 -2.39
2 1 2005-09-30 0.573
3 1 2005-10-31 -1.61
4 1 2005-11-30 5.43
5 1 2005-12-31 0.106
6 1 2006-01-31 6.66
预期结果:
# A tibble: 316 x 3
ntile date score
<int> <date> <dbl>
1 1_5 2005-08-31 -1.392994356
2 1_5 2005-09-30 -0.189120897
3 1_5 2005-10-31 0.820927813
4 1_5 2005-11-30 0.466263213
5 1_5 2005-12-31 0.004252737
数据:
这不需要任何预处理 图书馆弹琴 df%>% 组\按日期%>% %c1,5%>% 排列项%>% SummarySentile=pastentile[1],ntile[n],sep=-,, 分数=分数[1]-分数[n]]>% 绑定_行{df%>%mutatentile=as.characterntile},.%>% 选择日期、时间、分数 A tibble:474x3 日期分 1 2005-08-31 1 -2.39 2 2005-09-30 1 0.573 3 2005-10-31 1 -1.61 4 2005-11-30 1 5.43 5 2005-12-31 1 0.106 6 2006-01-31 1 6.66 7 2006-02-28 1 0.613 8 2006-03-31 1 4.21 9 2006-04-30 1 0.107 10 2006-05-31 1 -3.62 ... 还有464行 这是数据的尾部,显示df$ntile=='1'-df$ntile=='5'附加到底部:
.Last.value %>% tail %>% as.data.frame
# date ntile score
# 1 2018-07-31 1-5 -0.278
# 2 2018-08-31 1-5 -2.01
# 3 2018-09-30 1-5 0.307
# 4 2018-10-31 1-5 -1.36
# 5 2018-11-30 1-5 -1.33
# 6 2018-12-31 1-5 -1.44
您能展示一下您是如何实现bind_行的吗?对于如何计算差异,您有具体的顺序吗?你想用哪一天?1或5中的那个?我意识到我在数据中的日期上犯了一个小错误。我现在会解决这个问题,并更新你们两个。好的,我添加了解决日期问题的实际数据,并添加了一些更好的注释。
.Last.value %>% tail %>% as.data.frame
# date ntile score
# 1 2018-07-31 1-5 -0.278
# 2 2018-08-31 1-5 -2.01
# 3 2018-09-30 1-5 0.307
# 4 2018-10-31 1-5 -1.36
# 5 2018-11-30 1-5 -1.33
# 6 2018-12-31 1-5 -1.44