创建基于条件
我在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'
能否请你帮我找到这个问题?谢谢。
我们可以使用rowSums
X$NewVar <- as.integer(rowSums(X) > 0)
谢谢,我会试试,但我的if-else代码有什么问题?如果我在数据框中有更多的变量会发生什么,我只希望仅对其中的一部分有所了解?例如,如果我只想在X1,X2上调节? – user2899944
@ user2899944您正在使用'if/else'(适用于单个元素),并且没有被矢量化。如果你想要一个向量化的选项,它是'ifelse'。其次,'||'应该是'|' – akrun
我明白了。请再提一个问题。如果我把上面的第一个想法,但我的数据框架包括一个更多的变量(subjectID),我怎么能总结不包括第一列的行? – user2899944
用'X $ NewVar 0)'' – akrun
DF $ newvar 0 )' – Jaap