我有以下示例数据:
A = data.frame( x=c('x','x','y','y','z','z'), j=c(1,1,1,2,2,3) )
A$z[A$x=="x"]=1
A$z[A$x=="y"]=1
A$z[is.na(A$z)]=0
我想创建一个新列"Test"
,使用等于1的列"z"
作为条件,并获取列"x"
的值。
我使用以下语句,但有一条警告消息
if(A$z==1)A$Test=A$z
警告讯息: 在if(A $ z == 1)A $ Test = A $ z: 条件的长度> 1,只使用第一个元素
我该如何纠正?
答案 0 :(得分:3)
我们也可以
A$Test <- NA^(A$z!=1)*A$z
答案 1 :(得分:1)
将test
变量创建为数据框的一部分,并使用ifelse()
添加适当的值。考虑一下:
A$Test = ifelse(A$z==1, A$z, NA)