【发布时间】:2017-10-11 04:25:58
【问题描述】:
我试图寻找这个问题的答案,但我不确定我是否在搜索栏中正确地问了这个问题,所以就这样吧。我想创建一个基于两个向量的带有逻辑条件的 if 或 ifelse 语句。
这是代码的简化版本:
ifelse(Vector1 == c(T,T,T),"Combo1","Combo2")
我创建了一个名为“Vector1”的向量。它的值当前是 [T T F]。因此,在上述情况下,我希望打印“Combo2”的输出值。相反,我得到了 [Combo1 Combo1 Combo2] 的向量。所以我看到它正在将这些值传递给一个向量,但我希望 ifelse 语句传递一个 TRUE 或 FALSE 值来获得一个“Combo”值。
[T/F T/F T/F] 有 8 种组合,所以我尝试将其中几个 ifelse 语句嵌套在一起,但我想我会从简单开始。
我也尝试过使用 if 语句,但这似乎对我也不起作用。
感谢您的帮助。
【问题讨论】:
-
来自
?ifelse:“返回一个与测试形状相同的值”。这就是为什么您会返回一个与 Vector1 具有相同形状的向量。 -
除了'test'是一个逻辑向量。所以它与
Vector1的形状不同......它与Vector1 == c(T,T,T)和#[1] TRUE TRUE FALSE的“形状”相同。 (诚然,每个为真的逻辑向量的测试将是向量本身,但“测试”对象不是 jsut Vector1,而是来自==运算符的结果。
标签: r if-statement vector