r语言 - dplyr group_通过保留汇总后的额外列



我完全不知道这个——我在和"行人"玩。数据集来自tsibble。我想知道每个月/年的总金额。我首先添加一个month_year列,然后使用sum对数据进行汇总,如下所示:

library("tidyverse")
library("tsibble")
df1 <- pedestrian
df1$month_year <- format(as.Date(df1$Date), "%Y-%m")
count_all <- df1 %>%  
dplyr::group_by(month_year) %>% 
dplyr::summarise(total = sum(Count))

count_all的总结如下:

month_year          Date_Time                         total      
Length:17542       Min.   :2015-01-01 00:00:00.0   Min.   :   12  
Class :character   1st Qu.:2015-07-02 17:15:00.0   1st Qu.:  349  
Mode  :character   Median :2016-01-01 11:30:00.0   Median : 2090  
Mean   :2016-01-01 11:44:40.2   Mean   : 2593  
3rd Qu.:2016-07-02 04:45:00.0   3rd Qu.: 4455  
Max.   :2016-12-31 23:00:00.0   Max.   :15990

为什么保留Date_Time?以及如何防止它影响摘要(例如,防止它给出17,542行而不是预期的24行)。如果我像这样删除摘要前面的列:

df1$Date_Time <- NULL

然后它工作正常,结果的摘要如下所示:

month_year            total        
Length:24          Min.   :1148276  
Class :character   1st Qu.:1756898  
Mode  :character   Median :1927154  
Mean   :1895161  
3rd Qu.:2066043  
Max.   :2393675  

这个解决方案很好,但是我想知道问题的原因是什么,这样我就可以在将来避免它(这次很容易发现问题,但可能并不总是那么直接)。

提前感谢您的帮助!

数据集pedestrian是一个以sensor为键,Date_Time为索引的表。对表进行的任何操作都将保留该索引。您可以通过转换回标题来删除索引。

pedestrian %>%
as_tibble() %>% 
mutate(ym = yearmonth(Date)) %>% 
dplyr::group_by(ym) %>% 
dplyr::summarise(total = sum(Count))

相关内容

  • 没有找到相关文章

最新更新