【发布时间】:2013-11-07 10:43:08
【问题描述】:
我过去常常在我的代码中直接使用字符串比较,而没有考虑太多。然后我最近发现这里有些东西好像对说
> "1" < "2"
[1] TRUE
失败了
> "6" < "10"
[1] FALSE
我认为对此有一个非常简单的解释,我只是愚蠢。也许它会比较它们的 ASCII 值或其他东西。有什么见解吗?
我问的原因是我计划对具有类字符的时间戳向量进行排序。
例子:
> timeStamps <- c("2013/10/30 12:12:17","2013/10/30 12:12:38","2013/10/30 12:10:32","2013/10/30 12:09:42")
> sort(timeStamps)
[1] "2013/10/30 12:09:42" "2013/10/30 12:10:32" "2013/10/30 12:12:17" "2013/10/30 12:12:38"
这样做安全吗?还是他们的情况会失败,我应该将其转换为适当的时间戳格式然后对其进行排序?
【问题讨论】:
-
试试
"06" < "10",想想你不是在比较一个数字。 -
谢谢。它说它将字符转换为 UTF-8 编码。是的,我知道我不是在比较一个数字或时间戳,而是一个字符。但是我的输入是一个字符向量,恰好是 timstamps,如果直接排序可以工作,因为数据很大,我试图避免转换为 POSIXct 格式,然后对其进行排序。