对于等于==运算符vs大于> =运算符,R产生意外结果

时间:2018-11-29 22:03:41

标签: r operators r-base

尝试使用大于等于=的运算符对数据帧进行子集化时,

R产生意外结果。

以下是使用==运算符时的结果:

> head(sessions[sessions$datetime == "2016-06-25 13:29:43",],2)
   id   birdie            datetime side_speed end_speed full_coverage
15 65 CALAN197 2016-06-25 13:29:43      -0.34     -0.34             1

但是,当使用> =运算符时,以前出现在先前操作中的结果将不再出现。

> head(sessions[sessions$datetime >= "2016-06-25 13:29:43",],2)
  id   birdie            datetime side_speed end_speed full_coverage
1  2 CALAN190 2016-06-30 08:54:40      -0.34     -0.34             1
2  3 CALAN190 2016-06-30 09:55:05      -0.34      0.00             1

实际上,此结果与Greater>运算符相同。

怎么可能?

这是一个最小的可重现示例:

d <- read.table(text = "1 | 2 | CALAN190 | 2016-06-30 08:54:40   |   -0.34   |  -0.34      |       1
                2 | 3 | CALAN190 | 2016-06-30 09:55:05  |    -0.34   |   0.00      |       1
                15 | 65 | CALAN197 | 2016-06-25 13:29:43  |    -0.34  |   -0.34       |      1", sep = "|")
d$V4 <- as.POSIXct(d$V4)
head(d[d$V4 == "2016-06-25 13:29:43", ], 2)
head(d[d$V4 >= "2016-06-25 13:29:43", ], 2)

0 个答案:

没有答案