例如:
> TRUE * 0.5
0.5
> FALSE * 0.5
0
我不知道这里的秘密是*字符本身还是R编码逻辑语句的方式,但我无法理解结果的原因。
答案 0 :(得分:3)
*
强制转换为数字时,逻辑值变为0(FALSE)和1(TRUE),您的表达式将使用所有值乘以0等于0的通常数学约定进行求值,并且所有值乘以1等于该值。数字域中该规则的一个例外是Inf * 0
返回NaN
。当用" *"组成时,字符值没有"目的地" -type,因此"1"*TRUE
会引发错误。