-1

请考虑以下

string_1 = "??????????"
string_2 = " bob"
string_3 = "_bob_"
string_1 < 0
# [1] TRUE
string_2 < 0
# [1] TRUE
string_3 < 0
# [1] TRUE

string_4 = "bob"
string_4 < 0
# [1] FALSE

为什么字符串被 R 视为负值?是否有任何特定字符将字符串变为负值?如果是这样,我怎么能清理字符串向量不被视为负数?

4

2 回答 2

1

这只是一个字母排序顺序。

"b" < 0
### [1] FALSE
"?" < 0
## [1] TRUE

与这些相比如何"0";字母排序 as0被转换为character. 相似地:

"hello" > "goodbye"
## [1] TRUE
于 2013-11-12T06:02:45.293 回答
-1

是否有可能,您的 string_1 实际上不是由问号字符组成,而是由一些不可打印的字符组成,其中第一个字符的 ascii 值 < 48 ('0')?

因为我的简短实验表明,R 将 0 提升为“0”,然后对 2 个字符串进行字典比较。

"4aaaa" < 5
# [1] TRUE

"6bbbb" < 5
# [1] FALSE

0 并不特殊,因为字符串不是数字。

于 2013-11-12T06:11:43.367 回答