【问题标题】:dplyr group by: add null groupsdplyr group by:添加空组
【发布时间】:2018-03-20 21:48:36
【问题描述】:

我目前正在尝试使用 dplyr 并按城市分组来获取满足多个标准的观察计数。例如:

datacount.by.city <- data %>% 
group_by(city) %>% 
filter(cond1 == TRUE | cond2 == TRUE) %>% 
tally()

我将此条件附加到现有数据框中,其城市数量多于这些数据中包含的城市。有没有办法在这段代码中进行 group_by(city),同时为我的主要数据框中但不在我正在处理的数据中的城市添加 NA 值,所以我可以轻松地绑定到它并拥有正确的列数在正确的地方?

【问题讨论】:

  • 请通过包含示例输入数据和预期输出来提高重现性。
  • dplyr 的 bind_rows() 和 bind_cols() 不需要对您的数据进行排序
  • City Cond1 Cond2 City1 TRUE FALSE City2 TRUE FALSE City2 FALSE TRUE City1 FALSE TRUE 转为城市计数 City1 2 City2 2 City3 0
  • left_join(x,y) and NA的可能重复
  • 请仔细查看left_join。我个人非常喜欢rstudio.com/wp-content/uploads/2015/02/…

标签: r dplyr data-cleaning


【解决方案1】:

如果您的完整数据集是 df 例如:

data <- df %>%
    subset(city=="A")

datacount.by.city <- data %>% 
   ddply(.(city),summarize,count=sum(cond1 == TRUE | cond2 == TRUE)) %>%
   right_join(df,by="city")

给予:

     city count cond1 cond2
1    A     1  TRUE  TRUE
2    B    NA  TRUE  TRUE
3    C    NA  TRUE  TRUE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-01
    • 2018-06-14
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多