我的问题是,我正试图查看TimeA
是否在TimeB
之前,所以我正在做
ifelse(timeA < timeb, 0, 1)
我明白了:
1: In Ops.factor(TimeA, TimeB) : < not meaningful for factors.
那么如何转换我的时间格式以使其不是一个因素呢?我目前的时间格式是hh:mm:ss?
答案 0 :(得分:2)
您的回答听起来就像错误信息中那样:
1: In Ops.factor(TimeA, TimeB) : < not meaningful for factors.
为了比较, factor
没有明确的数值。考虑:
factor("chicken") < factor("beef")
#[1] NA
#Warning message:
#In Ops.factor(factor("chicken"), factor("beef")) :
# < not meaningful for factors
你在比较那些在数学上没有可比性的东西(如果你问我,鸡肉显然是更美味的肉)。如果您要将未格式化的时间值与@Metrics建议进行比较,那么您基本上会重复上述相同的问题。
factor("09:05:10") < factor("09:05:20")
#[1] NA
#Warning message:
#In Ops.factor(factor("09:05:10"), factor("09:05:20")) :
# < not meaningful for factors
但是,如果您正式将值指定为日期/时间值(基本上是数值),那么您就是甜蜜的:
as.POSIXct("09:05:10",format="%H:%M:%S") < as.POSIXct("09:05:20","%H:%M:%S")
请记住,除非您能够以数字形式表示您的数据合理/有意义,否则您无法明智/有意义地检查一个值是大于还是小于另一个值。