【发布时间】:2019-08-19 19:56:53
【问题描述】:
我认为这是一个常见问题,但无法找到此问题的答案。假设我有以下列表:
myList <- list(
apple = 15,
orange = NULL
)
我想测试它的向量的值,虽然我在执行测试时不能确定这些向量是否存在。
if(myList$apple > 1) print("Y") else print("N")
if(myList$orange > 1) print("Y") else print("N")
if(myList$banana == "plenty") print("Y") else print("N")
这显然行不通
Error in if (myList$orange > 1) print("Y") else print("N") : argument is of length zero
Error in if (myList$banana == "plenty") print("Y") else print("N") : argument is of length zero
但是,由于需要太多细节,我想避免使用 exists() 进行嵌套测试。所以我的问题是:能否仅在一个条件语句中对可能不存在的变量进行测试?
谢谢
编辑:@d.b 的回答适用于数值。更改了我的问题以找到适用于多种数据类型的通用解决方案。
【问题讨论】:
-
试试
is.null -
if (ifelse(is.null(myList), FALSE, ifelse(my$List$apple > 1, TRUE, FALSE)) print("Y")
标签: r if-statement logic conditional-statements