【发布时间】:2015-01-16 06:56:52
【问题描述】:
我正在阅读 Hadley Wickham 关于强制转换的 Advanced R 部分,我无法理解这种比较的结果:
"one" < 2
# [1] FALSE
我假设 R 将 2 强制转换为一个字符,但我不明白为什么 R 返回 FALSE 而不是返回错误。这让我特别困惑,因为
-1 < "one"
# TRUE
所以我的问题是双重的:首先,为什么这个答案,其次,有没有办法看到 R 如何像这些示例一样转换逻辑向量中的各个元素?
【问题讨论】:
-
提示:
sort(c("one","2","-1","10"))(10 不是必需的,但可能会给您另一个示例:"10"<"2") -
这种怪癖出现在所有编程语言中,请尽量注意您正在使用的数据类型,并将苹果与苹果和橙子与橙子进行比较。
-
强制在 R 中很普遍。它是一种弱类型语言。如果您不喜欢该功能,请使用 Java。当您查看带有“'\t9999' < " 00000"
-
感谢您的提示。我可以看到“排序”如何揭示答案,但我仍然不明白排序本身是如何工作的。 (我尝试了排序的帮助,但没有找到关于这个特定问题的解释)。(好的,基于 BondedDust,我明白为什么“10”
标签: r boolean comparison boolean-logic coercion