你能详细说明,这里发生了什么:
a = "TRUE"
b = TRUE
a
#[1] "TRUE"
b
#[1] TRUE
str(a)
#chr "TRUE"
str(b)
#logi TRUE
a == b
#[1] TRUE
对于字符串TRUE
,这只是"TRUE"
,例如:
"STRING" == TRUE
#[1] FALSE
所以这不是因为非空字符串是TRUE
,例如en { Perl,因此我原以为TRUE == "TRUE"
会产生FALSE
?
答案 0 :(得分:5)
在帮助文件中引用?Comparison
:
如果两个参数是不同类型的原子矢量,则一个是 强迫对方的类型,优先顺序(递减) 是字符,复数,数字,整数,逻辑和原始。
R会自动强制降低值,导致
"TRUE" == TRUE
# [1] TRUE
1 == TRUE
# [1] TRUE
等