【发布时间】:2022-06-30 21:30:20
【问题描述】:
我在 R 中运行常规 ifelse() 函数,但注意到它在以下情况下似乎无法正常工作:
vac_admin_level <- "both"
admin_list <- ifelse(vac_admin_level == "both", c("admin1", "admin2"), vac_admin_level)
admin_list <- ifelse(identical(vac_admin_level, "both"), c("admin1", "admin2"), vac_admin_level)
在这两种情况下,admin_list 只返回“admin1”,这很奇怪。但是,当我运行以下代码时,它按预期工作。
if(identical(vac_admin_level, "both")) {admin_list <- c("admin1", "admin2")} else {admin_list <- vac_admin_level}
我希望我对潜在问题的解释是有道理的。这对其他人来说是不是也有点奇怪?谢谢!
【问题讨论】:
-
ifelse(cond, x, y)的返回值由length(cond)决定。阅读?ifelse -
ifelse returns a value with the same shape as test which is filled with elements selected from either yes or no depending on whether the element of test is TRUE or FALSE.
标签: r