使用过滤器在环境中按日期对列进行排序

时间:2018-11-22 18:04:41

标签: r

我当前的设置

如何仅在2018年12月1日之后为数据过滤end_time列,然后在该日期之后对这些数据求和?

以下是我已经尝试过的内容。

setwd("/Users/jackbell/Desktop")
bookings<- read.csv("bookings_data_data_analyst_test.csv", header= TRUE)
end_time<- bookings %>%select(end_time)
end_time
new_date <- filter(end_time< as.Date("12/01/2018"))

1 个答案:

答案 0 :(得分:1)

我们需要将其转换为Date类。根据图像和OP的代码,“ end_time”似乎是列名,并且还创建了一个具有相同名称的对象。在最后一步中,语义不正确,因为我们需要在数据对象上应用filter。没有调用数据对象(“ end_time”)。其次,“日期”的格式是日/月/年。默认情况下,如果格式为as.DateDate),则Year-month-day返回一个YYYY-MM-DD类。对于所有其他格式,请指定format

library(tidyverse)
end_time %>% 
      filter(dmy(end_time) < dmy("12/01/2018"))

在上面的代码中,我们使用了dmy包中的lubridate。如果我们使用as.Date,它将是

end_time %>%
      filter(as.Date(end_time, format = "%d/%m/%Y") < as.Date("2018-01-12"))