卡在数据处理上

时间:2018-08-13 22:21:29

标签: r

这是我的数据:

name           charge          chargetype         filedate
Bob            CF              Violent            09/01/2016
Carl           CF              Non-Violent        08/07/2015
Lisa           CF              Non-Violent        07/03/2015
Louis          CF              Non-Violent        08/09/2018

我试图查看2017年7月1日之前发生的非暴力案件的总数和百分比。这是我当前的代码:

data %>%
     group_by(chargetype, filedate) %>%
     summarize(n_cases = n()) %>%
     filter(filedate < 07/01/2017) %>%
     summarize(n_nonviolent = sum(chargetype == "Non-Violent",
               n_violent = sum(chargetype == "Violent",
               n_total = n_nonviolent + n_violent,
               perc_nonviolent = (n_nonviolent/n_total)*100)

但这给我一个空白的结果吗?我在做什么错了?

1 个答案:

答案 0 :(得分:3)

如@akrun所述,您需要将Date变量转换为Date对象。可以像这样汇总之前使用baseR as.Date()函数:

data$filedate <- as.Date(data$filedate, format = "%m/%d/%Y")

完成此操作后,继续您的dplyr构造,但在过滤器函数中,将日期包括在引号中,例如... filter(filedate < "07/01/2017")