我当前的设置
如何仅在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"))
答案 0 :(得分:1)
我们需要将其转换为Date
类。根据图像和OP的代码,“ end_time”似乎是列名,并且还创建了一个具有相同名称的对象。在最后一步中,语义不正确,因为我们需要在数据对象上应用filter
。没有调用数据对象(“ end_time”)。其次,“日期”的格式是日/月/年。默认情况下,如果格式为as.Date
(Date
),则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"))