Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
润滑;Dplyr如何按周和类别聚合数据帧_R_Dplyr_Lubridate - Fatal编程技术网

润滑;Dplyr如何按周和类别聚合数据帧

润滑;Dplyr如何按周和类别聚合数据帧,r,dplyr,lubridate,R,Dplyr,Lubridate,考虑下面的例子 library(dplyr) library(lubridate) time <- seq(from =ymd("2014-01-01"),to= ymd("2014-02-20"), by="days") values <- sample(seq(from = 20, to = 50, by = 5), size = length(time), replace = TRUE) tipe <- sample(rep(x = c("Tipe_A", "Tipe_

考虑下面的例子

library(dplyr)
library(lubridate)

time <- seq(from =ymd("2014-01-01"),to= ymd("2014-02-20"), by="days")
values <- sample(seq(from = 20, to = 50, by = 5), size = length(time), replace = TRUE)
tipe <- sample(rep(x = c("Tipe_A", "Tipe_B", "Tipe_C")), size = length(time), replace = TRUE)

df2 <- data_frame(time, tipe, values)

# A tibble: 51 x 3
   time       tipe   values
   <date>     <chr>   <dbl>
 1 2014-01-01 Tipe_B     40
 2 2014-01-02 Tipe_B     30
 3 2014-01-03 Tipe_A     35
 4 2014-01-04 Tipe_A     50
 5 2014-01-05 Tipe_B     35
 6 2014-01-06 Tipe_B     50
 7 2014-01-07 Tipe_A     50
 8 2014-01-08 Tipe_B     40
 9 2014-01-09 Tipe_A     30
10 2014-01-10 Tipe_B     25
# ... with 41 more rows
库(dplyr)
图书馆(lubridate)
时间%
总结(avr=平均值(差值,na.rm=T))
#一个tibble:7x2
每周平均值
1     1   7.5 
2     2 -20   
3     3   3.33
4     5   0   
5     6  -3.33
6     7 -10   
7     8  25
然而,我有很多类型,所以这将是一个乏味的过程


是否有办法使每种类型的分组更有效?

在这里,我们可能需要先按“tipe”进行分组,然后计算“差异”,并将“周”添加为分组列,然后才能在
摘要中获得
平均值

library(dplyr)
df2 %>%
   group_by(tipe) %>% 
   mutate(diff = values - lag(values, order_by = time)) %>%
   group_by(week = week(time), .add = TRUE) %>%
   summarise(avr = mean(diff, na.rm = TRUE))
或者先排列

df2 %>%
   arrange(tipe, time) %>% 
   group_by(tipe) %>% 
   mutate(diff = values - lag(values)) %>%
   group_by(week = week(time), .add = TRUE) %>%
   summarise(avr = mean(diff, na.rm = TRUE))

在这里,我们可能需要先按“tipe”进行分组,然后计算“diff”,再将“week”添加为分组列,然后才能在
摘要中获得
平均值

library(dplyr)
df2 %>%
   group_by(tipe) %>% 
   mutate(diff = values - lag(values, order_by = time)) %>%
   group_by(week = week(time), .add = TRUE) %>%
   summarise(avr = mean(diff, na.rm = TRUE))
或者先排列

df2 %>%
   arrange(tipe, time) %>% 
   group_by(tipe) %>% 
   mutate(diff = values - lag(values)) %>%
   group_by(week = week(time), .add = TRUE) %>%
   summarise(avr = mean(diff, na.rm = TRUE))

我猜你需要
df2%%>%groupby(tipe)%%>%变异(…
我猜你需要
df2%%>%groupby(tipe)%%>%变异(…
我接受你的建议,添加了
groupby(week=week(time),tipe)%%>%
起初我以为“滞后”会有问题函数采用错误的周数/类型。但是它工作得很好。谢谢你的推荐,并添加了
groupby(week=week(time),tipe)%%>%
起初我以为“lag”函数采用错误的周数/类型会有问题。但是它工作得很好。谢谢