用cumsum创建一个新表-代码似乎不起作用?

时间:2019-05-26 04:16:44

标签: r dplyr

因此,我正在使用dplyr创建一个新数据框以进行绘制:第1列中的date和第2列中的IDCount和第3列中的CumulativeIDCount。这是我编写的代码正在这样做:

df2 <- df %>%
  group_by(Date)%>%
  summarise(IDCount =n(),CumulativeIDCount=cumsum(n()))

cumulativeIDCount列不是累积性的,它与IDCount列完全相同。这段代码哪里出问题了?

2 个答案:

答案 0 :(得分:0)

您最需要的是分组后cumsum中的IDCount

library(dplyr)

df %>%
  group_by(Date)%>%
  summarise(IDCount =n()) %>%
  mutate(CumulativeIDCount = cumsum(IDCount))

答案 1 :(得分:0)

我们可以使用data.table

library(data.table)
setDT(df)[, .(IDCount = .N), Date][, CumulativeIDCount = cumsum(IDCount)][]

或与dplyr

library(dplyr)
df %>%
   count(Date) %>%
   mutate(CumulativeIDCount = cumsum(n))