0

我是 R 的初学者,我正在尝试了解其ifelse工作原理。

我尝试了一些简单的方法,例如:

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

mydataframe$col1并且col2是因素。在这种情况下, my newColwill always FALSE,这是错误的,因为我以这种方式验证了:

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

我也不想使用for循环,这对于我尝试的方法来说通常很慢。

我做错了什么?

4

2 回答 2

3

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

尝试:

mydataframe$newCol <-
    with(mydataframe,
         ifelse(col1 == col2,
                TRUE,
                FALSE))
于 2012-12-30T17:30:34.983 回答
2

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

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

它将返回一个布尔向量。

于 2012-12-30T17:51:34.423 回答