Ifelse函数R.

时间:2015-04-21 11:21:24

标签: r if-statement

我正在尝试执行此代码,但获得结果NA。

> node1<- paste0("train$", rule, collapse=" & ")
> node1
[1] "train$feat_11< 5.477 & train$feat_60< 4.687"
>x<-ifelse(node1,1,0)
[1] NA

如何在if else函数中使用字符向量?

1 个答案:

答案 0 :(得分:3)

逻辑向量和字符向量是R中的两个非常不同的东西。

class(node1)
#>[1] "character"

您必须首先解析并评估字符串。

lNode1 = eval(parse(text=node1))
class(lNode1)
#>[1] "logical"
x<-ifelse(lNode1,1,0)
#>a list of 1's and 0's

尽管如此,你的ifelse陈述是多余的。当以需要它的方式使用时,逻辑向量将强制转换为整数向量。例如,您可以sum(lNode1)获取通过这两个规则的次数。