【问题标题】:Struggling with the ifelse function in R与 R 中的 ifelse 函数作斗争
【发布时间】:2021-01-28 08:27:38
【问题描述】:

谁能解释一下我做错了什么。我不了解 R 中 ifelse 函数的行为。我希望 ifelse 函数会返回整个列表 ids_match。但是,这些是我在控制台窗口中使用 RStudio 版本 1.3.1093 得到的结果:

 cond1 = FALSE
 cond2 = FALSE
 cond3 = TRUE
 ids_match = list(1, 2, 3)

ifelse(cond1 & cond2 & cond3, ids_match[1], ids_match)

[[1]] [1] 1

ifelse(TRUE, ids_match[1], ids_match)

[[1]] [1] 1

ifelse(FALSE, ids_match[1], ids_match)

[[1]] [1] 1

ifelse(FALSE, "TRUE", "FALSE")

[1]“假”

ifelse(TRUE, "TRUE", "FALSE")

[1]“真”`

【问题讨论】:

    标签: function if-statement


    【解决方案1】:

    根据?ifelse

    用法:ifelse(test, yes, no)

    说明: “ifelse”返回一个与“test”形状相同的值,即 填充从“是”或“否”中选择的元素,具体取决于 关于“test”的元素是“TRUE”还是“FALSE”。

    现在,由于(cond1 & cond2 & cond3) 是单个布尔变量(即length(cond1 & cond2 & cond3) == 1),因此您的响应长度也将为1。

    另见相关讨论here

    【讨论】:

    • 很高兴能帮上忙!如果您认为我的回复充分回答了您的问题,我可以请您批准吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2022-01-08
    • 2013-12-06
    相关资源
    最近更新 更多