【发布时间】:2019-10-29 06:21:09
【问题描述】:
逻辑 NOT 运算符! 似乎在算术中具有非直观的运算顺序:
set.seed(42)
a <- sample(100, 3)
b <- sample(100, 3)
c <- sample(100, 3)
l <- (1:3) <= 2
a * !l - b * !l + c
# 0 0 29
# same expression, but with parentheses for explicit grouping order of operations
(a * !l) - (b * !l) + c
# 74 14 43
关于! 运算符与* 或从逻辑到数字的转换,一定有什么我不明白的地方吗?
【问题讨论】:
-
检查
?Syntax的运算符优先级。加/减在乘/除之前 -
好主意@akrun,但我在
?Syntax中看不到任何有关!运算符优先级的信息 -
它就在那里,否定运算符
-
我一直觉得(并且有一段时间,认为)否定运算符应该像否定运算符一样直接,就像本地一样可能。对我来说,贪婪的否定者的概念是……错误的。不幸的是,他们在实施时没有咨询我。 (对我来说,
(!F)+5和!F+5不是同一个东西,这对我来说是违反直觉的......即使是一个其他无意义的表达。)叹息。</rant>。谢谢@MrFlick。
标签: r math arithmetic-expressions