R mutate_impl(.data,dots)中出错:计算错误:二进制运算符的非数值参数
当我尝试运行以下函数时:R mutate_impl(.data,dots)中出错:计算错误:二进制运算符的非数值参数,r,dplyr,R,Dplyr,当我尝试运行以下函数时: foo <- air_reserve %>% mutate(reserve_date = date(reserve_datetime), reserve_hour = hour(reserve_datetime), reserve_wday = wday(reserve_datetime, label = TRUE), visit_date = date(visit_datetime),
foo <- air_reserve %>%
mutate(reserve_date = date(reserve_datetime),
reserve_hour = hour(reserve_datetime),
reserve_wday = wday(reserve_datetime, label = TRUE),
visit_date = date(visit_datetime),
visit_hour = hour(visit_datetime),
visit_wday = wday(visit_datetime, label = TRUE),
diff_hour = time_length(visit_datetime - reserve_datetime, unit = "hour"),
diff_day = time_length(visit_datetime - reserve_datetime, unit = "day")
)
我如何解决这个问题
注:
foo
函数取自此Oww
我已通过以下代码解决此问题:
foo <- air_reserve %>%
mutate(reserve_date = date(reserve_datetime),
reserve_hour = hour(reserve_datetime),
reserve_wday = wday(reserve_datetime, label = TRUE),
visit_date = date(visit_datetime),
visit_hour = hour(visit_datetime),
visit_wday = wday(visit_datetime, label = TRUE),
diff_hour = time_length(as.numeric(visit_datetime) - as.numeric(reserve_datetime), unit = "hour"),
diff_day = time_length(as.numeric(visit_datetime) - as.numeric(reserve_datetime), unit = "day")
)
foo%
变异(保留日期=日期(保留日期时间),
预约时间=小时(预约日期时间),
reserve_wday=wday(reserve_datetime,label=TRUE),
就诊日期=日期(就诊日期时间),
访问时间=小时(访问日期时间),
访问日期=wday(访问日期时间,标签=TRUE),
diff_hour=时间长度(如.numeric(访问日期时间)-如.numeric(保留日期时间),单位为=“小时”),
diff_day=时间长度(作为.numeric(访问日期时间)-作为.numeric(保留日期时间),单位为=“天”)
)
请包括您正在使用的所有软件包。也分享一些可复制的例子。该错误表明您正试图对非数值变量进行计算。最有可能的visit_datetime
和reserve_datetime
不是数字,因此不能减去。欢迎使用:)@Sotos。谢谢你。
foo <- air_reserve %>%
mutate(reserve_date = date(reserve_datetime),
reserve_hour = hour(reserve_datetime),
reserve_wday = wday(reserve_datetime, label = TRUE),
visit_date = date(visit_datetime),
visit_hour = hour(visit_datetime),
visit_wday = wday(visit_datetime, label = TRUE),
diff_hour = time_length(as.numeric(visit_datetime) - as.numeric(reserve_datetime), unit = "hour"),
diff_day = time_length(as.numeric(visit_datetime) - as.numeric(reserve_datetime), unit = "day")
)