创建基于条件

问题描述:

我在R.数据帧例如,数据帧被称为X,并且包括以下各列在一个数据帧的新变量:创建基于条件

x1 = c(1,0,0,0) 
X2 = c(0,0,0,0) 
X3 = c(0,0,0,0) 
X4 = c(0,0,1,0) 

我要添加一个条件,对于每个的4名受试者的,如果至少一列是1,则一个新的变量将被创建越来越1.否则,如果所有都为0的新变量将为0

我尝试这样做:

if (X$X1 == 1 || X$X2 == 1 || X$X3 == 1 || X$X4 == 1 || X$X5 == 1) 
{ 
    NewVar = 1 
} 
else { NewVar = 0 } 

不过,我不断收到一个错误:

Error: unexpected 'else' in "else" and in my code R studio say: Unexpected token 'else'

能否请你帮我找到这个问题?谢谢。

+0

用'X $ NewVar 0)'' – akrun

+0

DF $ newvar 0 )' – Jaap

我们可以使用rowSums

X$NewVar <- as.integer(rowSums(X) > 0) 
+0

谢谢,我会试试,但我的if-else代码有什么问题?如果我在数据框中有更多的变量会发生什么,我只希望仅对其中的一部分有所了解?例如,如果我只想在X1,X2上调节? – user2899944

+0

@ user2899944您正在使用'if/else'(适用于单个元素),并且没有被矢量化。如果你想要一个向量化的选项,它是'ifelse'。其次,'||'应该是'|' – akrun

+0

我明白了。请再提一个问题。如果我把上面的第一个想法,但我的数据框架包括一个更多的变量(subjectID),我怎么能总结不包括第一列的行? – user2899944