如果否则及时陈述

时间:2013-08-12 01:00:15

标签: r if-statement

我的问题是,我正试图查看TimeA是否在TimeB之前,所以我正在做

ifelse(timeA < timeb, 0, 1)

我明白了:

1: In Ops.factor(TimeA, TimeB) : < not meaningful for factors.

那么如何转换我的时间格式以使其不是一个因素呢?我目前的时间格式是hh:mm:ss?

1 个答案:

答案 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")

请记住,除非您能够以数字形式表示您的数据合理/有意义,否则您无法明智/有意义地检查一个值是大于还是小于另一个值。