为什么在R中使用>比较两个字符串不会抛出错误?
R字符串比较不报错的原因
R支持直接对字符串做大小比较是原生设计的功能,不会抛出错误,判断逻辑遵循以下规则:
- 底层基于当前系统区域设置(locale)对应的字典序完成比较,本质是比对字符的编码值大小
- 执行比较时会从字符串的首字符开始逐位校验:
- 若某一位两个字符的编码值存在差异,直接以该位的比较结果作为整个字符串的比较结果,终止后续校验
- 若所有对应位置的字符完全一致,且两个字符串长度相同,则判定两个字符串相等
你运行的"Test" > "Test"案例中,两个字符串完全一致,判定为相等,因此>比较返回结果FALSE,属于符合预期的正常运行结果。
你可以自行运行以下代码验证逻辑:
# 首字符比对案例 "Apple" > "Banana" # 输出[1] FALSE,因为首字符A的字典序小于B # 中间位比对案例 "AppZ" > "AppA" # 输出[1] TRUE,前三位完全相同,第四位Z大于A # 不同长度字符串比对案例 "Test12" > "Test" # 输出[1] TRUE,前四位完全相同,更长的字符串判定为更大
内容的提问来源于stack exchange,提问作者Brigadeiro
相关产品推荐
相关产品推荐

