我是R的初学者,我正在努力了解ifelse
的工作原理。
我尝试过简单的事情:
ifelse(mydataframe$col1==mydataframe$col2 ,
mydataframe$newCol<-TRUE,
mydataframe$newCol<-FALSE
)
mydataframe$col1
和col2
是因素。
在这种情况下,我的newCol
将始终为FALSE
,这是错误的,因为我通过这种方式进行了验证:
mydataframe$newCol<- mydataframe[mydataframe$col1==mydataframe$col2]
我也不想使用for
循环,这对我所尝试的内容来说通常很慢。
我做错了什么?
答案 0 :(得分:3)
ifelse()
接受返回值作为第2和第3个参数(并且您正在编写作业)。
尝试:
mydataframe$newCol <-
with(mydataframe,
ifelse(col1 == col2,
TRUE,
FALSE))
答案 1 :(得分:2)
事实上,您不需要使用ifelse
,==
就足够了:
mydataframe$newCol <- with(mydataframe, col1 == col2)
它将返回一个布尔矢量。