r - dplyr:为什么不使用 summarise() 来汇总案例?

标签 r dataframe dplyr summarize

我有

> head(df,7)
        date pos cons_week
1 2020-03-30 313       169
2 2020-03-31 255       169
3 2020-04-01 282       169
4 2020-04-02 382       169
5 2020-04-03 473       169
6 2020-04-04 312       169
7 2020-04-05 158       169

pos 表示每天的新冠病毒阳性病例数。 cons_week 是自锁定以来的连续周数。因此,每个 cons_week 都有 7 个 pos 条目。我想进行总结,以便获得每周 pos 的总数。

我尝试了不同的版本,例如

df %>% group_by(cons_week) %>%
  summarise(n = n())

df %>% group_by(cons_week, pos) %>%
  summarise(n = sum())

预期输出

cons_week     n
169        2175 
170        1651
171        1179

数据

df <- structure(list(date = structure(c(18351, 18352, 18353, 18354, 
                                  18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 
                                  18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371), class = "Date"), 
               pos = c("313", "255", "282", "382", "473", "312", "158", 
                       "424", "347", "301", "140", "142", "140", "157", "156", "258", 
                       "199", "178", "168", "106", "114"), cons_week = c(169, 169, 
                                                                         169, 169, 169, 169, 169, 170, 170, 170, 170, 170, 170, 170, 
                                                                         171, 171, 171, 171, 171, 171, 171)), row.names = c(NA, 21L
                                                                         ), class = "data.frame")

最佳答案

因为 posdf 中的字符。您需要先将其转换为数字。例如:

library(dplyr)

df %>% 
        mutate(pos = as.numeric(pos)) %>% 
        group_by(cons_week) %>% 
        summarise(n = sum(pos))

或者:

df %>% 
        group_by(cons_week) %>% 
        summarise(n = sum(as.numeric(pos)))

输出:

  cons_week     n
      <dbl> <dbl>
1       169  2175
2       170  1651
3       171  1179

关于r - dplyr:为什么不使用 summarise() 来汇总案例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70447212/

相关文章:

python - 将 Pandas DataFrames 保存为 HDF5 存储,各种错误

舍入所有数字列,但表中只有一个

r - 按起始值和结束值标识的ID block 数

r - 为什么我从图中得到了错误的邻居

r - 将列的平均值添加为线图中的点

r - 将带有 data.frames 的列拆分为多行

r - 在没有当前行的情况下使用 rollaply

r - 如何使 geom_line 中的一种线条颜色遮盖其他线条颜色?

r - 根据 dplyr 中的 percent_rank 创建组

r - 自定义函数为 dplyr 的 mutate 中的所有行返回相同的值