*在R中意味着什么?

时间:2015-08-30 21:28:17

标签: r boolean

例如:

> TRUE * 0.5
   0.5
> FALSE * 0.5
   0

我不知道这里的秘密是*字符本身还是R编码逻辑语句的方式,但我无法理解结果的原因。

1 个答案:

答案 0 :(得分:3)

R有一个相当宽松的类型系统,并且相当自由地进行强制,希望当它是明智的时候。当通过*强制转换为数字时,逻辑值变为0(FALSE)和1(TRUE),您的表达式将使用所有值乘以0等于0的通常数学约定进行求值,并且所有值乘以1等于该值。数字域中该规则的一个例外是Inf * 0返回NaN。当用" *"组成时,字符值没有"目的地" -type,因此"1"*TRUE会引发错误。