【问题标题】:Logical Operators on characters in RR中字符的逻辑运算符
【发布时间】:2018-02-06 13:05:39
【问题描述】:

我只是想知道 R 在应用逻辑运算符时如何评估不同的字符。喜欢

"a" > "b"
"b" > "c"
"a+b" > "b+a"
"-" > "+"
"&" > "%"

我只是想知道R如何按升序或降序排列不同的符号和字符?对于上面定义的每个操作,我先前的信念是“NA”。但是 R 对于每种情况都返回 TRUE 或 FALSE。

【问题讨论】:

    标签: r logical-operators


    【解决方案1】:

    查看比较帮助页面?Comparison

    引用关键段落:

    字符向量中字符串的比较是使用所用语言环境的整理顺序在字符串中按字典顺序进行的:请参阅语言环境。诸如 en_US 之类的语言环境的整理顺序通常与 C(应该使用 ASCII)不同,并且可能令人惊讶。谨防对整理顺序做出任何假设:例如在爱沙尼亚语中,Z 位于 S 和 T 之间,排序不一定是逐个字符的——在丹麦语中,aa 排序为单个字母,在 z 之后。在威尔士语中,ng 可能是也可能不是单个排序单元:如果是,则遵循 g。某些平台可能不尊重语言环境,并且总是在 8 位语言环境中按字节的数字顺序排序,或者在 UTF-8 语言环境中按 Unicode 代码点顺序排序(并且对于相同的语言,在不同的字符集)。非字母(空格、标点符号、连字符、分数等)的整理更成问题。

    【讨论】:

      【解决方案2】:

      您可以通过显式请求 char 或字符串值列表的顺序来解决这个难题...

      items <- c('+','-','a','z', 'A', 'a+b', 'a+x', '*', '/')
      items[order(items)]
      

      【讨论】:

        【解决方案3】:

        sort可以下单。

        sort(c(letters, LETTERS, 0:9, "+", "\"", "¦", "@", "*", "#", "ç", "%", "&", "¬", "|",
        "(", "¢", ")", "=", "?", "'", "´", "`", "^", "~", "!", "[", "]", "$", "£", "{", "}", 
        ".", ",", "-", "_", "<", ">", "/"))
        

        【讨论】:

        • 但是在 R 中排列这些字符的标准是什么?
        • 第一个符号,然后是数字,然后是字母,当它是同一个字母时,小写在大写之前。符号的顺序取决于您的本地设置。 (另见@Stephen Henderson 的回答)
        猜你喜欢
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 2021-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多