如何在数据框上使用ifelse

时间:2012-12-30 17:22:42

标签: r

我是R的初学者,我正在努力了解ifelse的工作原理。

我尝试过简单的事情:

ifelse(mydataframe$col1==mydataframe$col2 ,
  mydataframe$newCol<-TRUE,
  mydataframe$newCol<-FALSE  
)

mydataframe$col1col2是因素。 在这种情况下,我的newCol将始终为FALSE,这是错误的,因为我通过这种方式进行了验证:

mydataframe$newCol<- mydataframe[mydataframe$col1==mydataframe$col2]

我也不想使用for循环,这对我所尝试的内容来说通常很慢。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

ifelse()接受返回值作为第2和第3个参数(并且您正在编写作业)。

尝试:

mydataframe$newCol <-
    with(mydataframe,
         ifelse(col1 == col2,
                TRUE,
                FALSE))

答案 1 :(得分:2)

事实上,您不需要使用ifelse==就足够了:

mydataframe$newCol <- with(mydataframe, col1 == col2)

它将返回一个布尔矢量。