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

hmh*_*sen 1 if-statement r vector

我试着寻找这个问题的答案,但我不确定我是否在搜索栏中正确地提出问题,所以就这样了.我想基于两个向量创建一个带有逻辑条件的if或ifelse语句.

这是代码的缩短版本:

ifelse(Vector1 == c(T,T,T),"Combo1","Combo2")
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为"Vector1"的向量.它的价值目前是[TTF].所以在上面的例子中,我希望打印输出值"Combo2".相反,我得到了[Combo1 Combo1 Combo2]的矢量.所以我看到它将这些值传递给向量,但我希望ifelse语句传递单个TRUE或FALSE值以获得单个"Combo"值.

有[T/FT/FT/F]的8种组合,所以我试图将这些ifelse语句中的几个嵌套在一起,但我想我开始很简单.

我也试过使用if语句,但这对我来说似乎也没有用.

我感谢任何帮助.

thc*_*thc 5

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

my_result = if(all(Vector1 == c(T,T,T))) {"Combo1"} else {"Combo2"}
Run Code Online (Sandbox Code Playgroud)

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

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