if语句中的条件如何被强制变为逻辑?

时间:2019-03-11 21:03:49

标签: r

if的文档说,条件应该是(强调我的):

  

不是NA的长度为1的逻辑向量。长度条件   大于一个的警告目前已被接受,但只有   使用第一个元素。相反,当   环境变量_R_CHECK_LENGTH_1_CONDITION_设置为true。   如果可能的话,其他类型将被强制转换为逻辑类型,而忽略任何类。

胁迫是如何完成的?“忽略任何班级”是什么意思?

例如,表达式list(1)可以用TRUE显式强制为as.logical,并在等式比较中隐式地认为TRUE

> as.logical(list(1))
[1] TRUE
> list(1) == TRUE
[1] TRUE

为什么,以下操作失败?

> if (list(1)) print("Passed test!")
Error in if (list(1)) print("Passed test!") : 
  argument is not interpretable as logical

0 个答案:

没有答案