Ifelse语句中的R因素
问题描述:
我有类似这样的数据:Ifelse语句中的R因素
X Y
45 45
56 34
Unspecified Unspecified
Unspecified 23
我想用一个ifelse语句来比较这些 - 让一个1,如果列X不等于列Y,和0除此以外。我一直在尝试这样的事情:
ifelse(data$X == data$Y, 0, 1)
但没有得到任何好处。我能做什么?像往常一样,任何帮助将不胜感激。
答
想通了这要归功于在某种程度上删除评论:
ifelse(as.character(data$X) == as.character(data$Y), 0, 1)
答
无需使用ifelse
,只是用逻辑运算符!=
。考虑你的数据帧是df
:
> with(df, as.character(X)!=as.character(Y))*1
[1] 0 1 0 1
+0
我更喜欢显式转换,而不是'* 1'。 – zx8754
你是什么意思的“无济于事”? – Psidom
在进行比较之前将您的列转换为字符。 – Psidom
另请注意,'data'中的colnames以大写字母(X,Y)表示,而在'ifelse'中则以小写字母(x,y)表示。 –