如何在数据框中的每几行添加行

时间:2017-03-20 14:42:14

标签: r

我有一个类似下面的数据框,

  Date Bradford Leeds Exeter Carlisle Bristol
1   2012-03       58   115     36       26     141
3   2012-04      140   302    100       70     348
8   2012-05      105   238     77       55     284
12  2012-06      107   239     77       53     288
16  2012-07      142   319     99       72     368
21  2012-08      112   280     81       60     318
25  2012-09      143   325    108       70     374
30  2012-10      110   259     84       52     288
34  2012-11      107   243     81       55     266
38  2012-12      142   291     93       59     305
43  2013-01      135   264     90       51     289
47  2013-02      122   255     78       51     269
51  2013-03      138   315     97       67     350
56  2013-04      109   243     77       53     274
60  2013-05      112   225     76       53     266
64  2013-06      131   286     95       66     345
69  2013-07      106   239     78       57     284
73  2013-08      109   270     80       61     302
77  2013-09      139   301    106       66     346
82  2013-10      111   238     81       51     277
86  2013-11      102   231     78       49     261
90  2013-12      123   267     88       58     304
95  2014-01      105   241     81       51     273
99  2014-02      105   246     82       52     274
103 2014-03      127   294     96       65     352
108 2014-04      105   239     76       54     264
112 2014-05      105   225     76       52     270
116 2014-06      126   289     92       65     339
121 2014-07      103   235     76       56     277
125 2014-08      146   322     99       67     366
130 2014-09      104   239     82       50     271
134 2014-10      103   228     78       49     266
138 2014-11      123   279     95       57     313
143 2014-12       97   201     68       57     232
147 2015-01      124   224     79       51     266
151 2015-02      110   225     76       54     263
155 2015-03      152   264     95       64     342
160 2015-04      109   212     73       54     286
164 2015-05      132   272     95       66     346
169 2015-06      106   215     77       54     297
173 2015-07      105   227     80       56     282
177 2015-08      144   296    106       70     370
182 2015-09      121   228     82       59     272
186 2015-10      113   227     79       54     274
190 2015-11      146   275     94       60     323
195 2015-12      108   218     73       60     244
199 2016-01      134   283    124       69     343
204 2016-02      109   225     78       52     269
208 2016-03      107   204     74       50     257
212 2016-04      114   214     75       53     280
216 2016-05      139   271     96       66     338
221 2016-06      101   211     72       51     267
225 2016-07      132   275     94       66     348
230 2016-08      118   243     79       54     327
234 2016-09      132   230     83       52     303
238 2016-10      138   292    108       61     332
243 2016-11      106   235     74       47     248
247 2016-12       99   203     67       46     230
251 2017-01      132   297     95       61     325
256 2017-02      101   231     75       52     261
260 2017-03       51   107     37       25     129

如何编码在同一季度添加行,并将日期设置为2014-04,以便将行添加到2014-01.2014-01和2014-03

它会像:

Date      Bradford     Leeds    Exeter   Carlisle    Bristol
2013-04   395           834       265       169        908
2013-07   
2013-10

2013-04至2017-01期间应该有更多数字

非常感谢!!

1 个答案:

答案 0 :(得分:2)

你可以使用zoo函数来获得如下四分之一:

library(zoo)
library(dplyr)

as.yearmon(c("2014-01","2014-02","2014-03")) %>% as.yearqtr()
[1] "2014 Q1" "2014 Q1" "2014 Q1"

所以申请这个可以:

  • 添加列Quarter以保存季度值

  • 分组Quarter

  • 使用summarize_all或使用summarize_at

  • 在所选列中对所有列中的值求和
df_sums <- df %>% 
  mutate(Date=as.yearmon(Date)) %>% 
  mutate(Quarter=zoo::as.yearqtr()) %>% 
  group_by(Quarter) %>% 
  summarise_all(sum)