在R中使用if / ifelse语句和向量条件

时间:2017-05-12 00:58:39

标签: r if-statement vector

我试着寻找这个问题的答案,但我不确定我是否在搜索栏中正确地提出问题,所以就这样了。我想基于两个向量创建一个带有逻辑条件的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语句,但这对我来说似乎也没有用。

我感谢任何帮助。

1 个答案:

答案 0 :(得分:5)

你也可以做一个普通的if语句,因为它返回一个值:

my_result = if(all(Vector1 == c(T,T,T))) {"Combo1"} else {"Combo2"}

ifelse函数用于向量化条件语句。

通过使用标准if语句,您可以消除潜在的歧义/误解,因为标准如果仅评估一个条件。