如何解决R语言中difftime()函数的objectnotfound错误
解决R语言计算时间差时的"object ended_at not found"错误
你的代码存在几个关键错误,导致了该报错,以下是修正方案及原因说明:
代码中的错误点
- 函数名错误:R语言大小写敏感,计算时间差的正确函数是
difftime(),而非你写的Dfftime()。 - 数据框名称错误:
all-trips会被R解析为all减trips的运算,而非数据框名称,你需要使用正确的命名all_trips(下划线连接)。 - 列引用错误:
&是逻辑与运算符,不能用来引用数据框的列,正确的列引用方式是$或[[ ]]。
修正后的代码
基础计算版(生成单独的时间差对象)
# 计算时间差,可通过units参数指定单位,比如"mins"分钟、"hours"小时、"days"天 time_diff <- difftime(all_trips$ended_at, all_trips$started_at, units = "mins")
新增列到原数据框
如果想把时间差作为新列直接添加到all_trips中:
all_trips$duration <- difftime(all_trips$ended_at, all_trips$started_at, units = "hours")
额外检查步骤
若修正后仍报错,需确认:
- 输入
ls()查看当前环境中是否存在all_trips数据框。 - 确认
ended_at和started_at是日期时间类型,若为字符型需先转换:# 根据你的时间格式调整format参数,示例格式为"年-月-日 时:分:秒" all_trips$started_at <- as.POSIXct(all_trips$started_at, format = "%Y-%m-%d %H:%M:%S") all_trips$ended_at <- as.POSIXct(all_trips$ended_at, format = "%Y-%m-%d %H:%M:%S")
内容的提问来源于stack exchange,提问作者gbolahan tanimowo
相关产品推荐
相关产品推荐

