3

3 つの式があり、それぞれに論理値またはその否定を伴う乗算が含まれます。これらの論理とその否定は標識変数を表すため、式は条件付きで評価されます。

-2*3*!T + 5*7*T
5*7*T + -2*3*!T 
(-2*3*!T) + 5*7*T

上記で同じ結果が得られると思います。でも:

> -2*3*!T + 5*7*T
[1] 0          # unexpected!
> 5*7*T + -2*3*!T 
[1] 35
> (-2*3*!T) + 5*7*T
[1] 35

これは演算子の優先順位と型強制と関係があると確信していますが!T*.

4

1 に答える 1

4

これは演算子の優先順位に関するものであることは間違いありません。(上記?base::Syntaxでリンクした)状態のように、!すべての算術演算子よりも優先順位が低いため、最初の式は次と同等です

(-2*3)*!(T + 5*7*T)  

(!最後の乗算を行う前に、を含む式を評価する必要があるため) または

-6*!(36)  # T coerced to 1 in numeric operations

また

-6*FALSE  # non-zero numbers coerced to TRUE in logical operations

また

-6*0      # FALSE coerced to 0 in numeric operations
于 2016-11-01T23:47:29.487 に答える