r - 为什么在检查字符值是否大于数字时得到 TRUE?
问题描述
有人可以向我解释这里发生了什么吗?具体来说:
- 为什么我在第一种情况下首先得到 TRUE?
- 为什么与“10”比较时会切换为FALSE?
"9" > 2
# [1] TRUE
"10" > 2
# [1] FALSE
解决方案
强制的层次结构是:逻辑 < 整数 < 数字 < 字符。所以在这两种情况下,数字都被强制转换为字符。字符按 ASCII 顺序按位置“排序”。所以"9"
大于"2"
但"10"
小于"2"
因为"1"
小于"2"
。
推荐阅读
- php - Simple HTML Dom:选择和计算子元素(.eq 函数到 Simple HTML Dom)
- unity3d - 我只想在其他事件发生时实例化一个多维数据集
- pyspark-dataframes - 当有许多不同的值时如何过滤 Spark 数据框中的列
- ruby - 如何修复 Jekyll “找不到 JavaScript 运行时”错误
- multithreading - Golang中的“打开的文件太多”没有打开任何文件
- sql - 如何在 GROUP BY 中正确 GROUP BY 以获取多个 COUNTS 的 COUNT
- mysql - Retrofit2 MySQL 使用新的 Android Studio 3.6 重复了 @POST 请求
- visual-studio-code - 如何在自定义 VSCode 语言中引用注入的语法
- sql-server - 捕获删除临时表中行的用户
- kotlin - Kotlin 推断 JOOQ 方法错误