不正确 * 不正确等于正确吗?
not true * not true equals true?
由于 R
的以下行为,我的代码出现了一些问题:
> F * F
[1] 0
> !T * !T
[1] TRUE
谁能告诉我如何避免这种情况?
我需要将一些值相乘并得到逻辑乘法的结果:
!first * !second * !third
我想得到 "True" 只有当所有值都为真时。
这是运营商的优先事项。否定 !
的优先级低于乘法。
给出了一个列表,按照运算符优先级的降序排列 here。此列表也可以用 ?Syntax
.
显示
如果TRUE
的否定放在大括号中,得到的结果更直观:
(!TRUE) * (!TRUE)
[1] 0
在这种情况下,(!TRUE)
的每个实例都被乘法强制为0,结果显然是0。
但是,操作 !TRUE * !TRUE
等于 !(TRUE * !TRUE)
,后者又等于 !0
,因此(否定将零强制转换为逻辑 FALSE
), 结果等于 TRUE
.
总而言之,解释一下你的问题的标题,可以说:
NOT(TRUE * NOT(TRUE)) 等于 TRUE。
由于 R
的以下行为,我的代码出现了一些问题:
> F * F
[1] 0
> !T * !T
[1] TRUE
谁能告诉我如何避免这种情况?
我需要将一些值相乘并得到逻辑乘法的结果:
!first * !second * !third
我想得到 "True" 只有当所有值都为真时。
这是运营商的优先事项。否定 !
的优先级低于乘法。
给出了一个列表,按照运算符优先级的降序排列 here。此列表也可以用 ?Syntax
.
如果TRUE
的否定放在大括号中,得到的结果更直观:
(!TRUE) * (!TRUE)
[1] 0
在这种情况下,(!TRUE)
的每个实例都被乘法强制为0,结果显然是0。
但是,操作 !TRUE * !TRUE
等于 !(TRUE * !TRUE)
,后者又等于 !0
,因此(否定将零强制转换为逻辑 FALSE
), 结果等于 TRUE
.
总而言之,解释一下你的问题的标题,可以说:
NOT(TRUE * NOT(TRUE)) 等于 TRUE。