繁体   English   中英

R Studio - 按 dataframe 分组并使用 dplyr 获取统计信息

[英]R Studio - group by dataframe and get statistics using dplyr

我有一个 dataframe:

在此处输入图像描述

我想按“ID”和“方向”分组,然后获取“值”的统计信息。 对我来说最难的是对于“类别”列,我需要始终 output 是“ID”组中的最后一个“类别”,如图所示。

我有代码,但结果不可取。 谁能帮我修改现有代码? 感谢您的时间!

ID        <- c(1,1,1,2,2,2,3,3)
category  <- c("green", "green", "red", "red","green", "green", "yellow", "yellow")
direction <- c("in", "out","in", "out","in", "out","in", "out")
value     <- c(4,5,6,7,8,9,10,11)
df        <- data.frame(ID, category, direction, value)

res <- df %>% 
  group_by(ID,direction) %>% 
  arrange(ID, direction)%>%
  summarize(
    category    = last(category),
    sum_value   = sum(value),
    count_value = length(value)
  )

您快到了。 只是您的“最后(类别)”分组仅基于 ID 而不是 ID 和方向。 如果您将其更改为:

res <- df %>%
  group_by(ID) %>% 
  mutate(category = last(category)) %>% 
  ungroup %>% 
  group_by(ID, direction, category) %>% 
  summarise(
    sum_value = sum(value),
    count_value = length(value)
  ) %>% 
  ungroup

它应该可以解决问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM