请考虑以下
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视为负值?是否有任何特定字符将字符串转换为负值?如果是这样,我怎样才能消除被视为否定的字符串向量?
答案 0 :(得分:1)
这只是一个字母排序顺序。
"b" < 0
### [1] FALSE
"?" < 0
## [1] TRUE
这些与"0"
相比如何? 0
的字母排序转换为character
。类似地:
"hello" > "goodbye"
## [1] TRUE
答案 1 :(得分:-1)
你是否有可能,string_1实际上并不是由问号字符组成,而是由一些不可打印的字符组成,其中第一个字符具有ascii值&lt; 48('0')?
因为我的简短实验表明,R将0提升为“0”,然后进行2字符串的词典比较。
"4aaaa" < 5
# [1] TRUE
"6bbbb" < 5
# [1] FALSE
0不是特别的,因为字符串不是数字。