取两行之间的差异,然后在dplyr管道中绑定_行

取两行之间的差异,然后在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

编辑:我附加了实际数据并重新解释得更好一些:

我对数据进行了预处理,并将其过滤为仅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
分数之间的差异为-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