我有一个飞行员试验的数据集,其中包含12个项目的测试。我创建了变量:test1_processed,如下所示,它给了我该人可以解决的项目数量:
for(i in 1:length(test1)){
data[,test1[i]] <- ifelse(data[,test1[i]]<=0, 1, data[,test1[i]])
}
describe(data[,test1])
data$test1_processed <- ifelse(apply(is.na(data[,test1]), 1, all),NA,rowSums(data[,test1],na.rm=TRUE))
现在,我想创建一个新变量,如果test_processed = 12(如果所有项目都已解决),则其简单编码为“ 1”,否则为“ 0”。
我这样尝试过:
data$test1_complete <- ifelse(apply(is.na(data$test1_processed), 1, all),NA,1)
但是R说,dim(x)必须为正。
所以我检查了变量:
is.vector(data[,"test1_processed"])
[1] TRUE
is.numeric(data[,"test1_processed"])
[1] TRUE
然后我像这样尝试:
data$test1_complete <- ifelse(apply(is.na(data[,test1_processed]), 1, all),NA,1)
但是R表示,即使对象test1_processed是数据集中的一列,也找不到该对象。
如果我这样尝试过:
test1_processed <- ifelse(apply(is.na(data[,test1]), 1, all),NA,rowSums(data[,test1],na.rm=TRUE))
data$test1_complete <- ifelse(apply(is.na(data[,test1_processed]), 1, all),NA,1)
它说选择了未定义的列。
类似这样的东西:
data$test1_complete <- if(test1_processed>11) 1 else 0
only returned: Error in if (test1_processed > 11) 1 else 0 :
missing value where TRUE/FALSE needed
In addition: Warning message:
In if (test1_processed > 11) 1 else 0 :
the condition has length > 1 and only the first element will be used
[如果有人可以帮助我,我会很高兴:)
谢谢!
也许您可以尝试这样的事情,例如test1_processed是数字,并且从0到12
data$allcorrect <- 0
data$allcorrect[data$test1_processed > 11] <- 1