函数,因为显然未指定变量,则条件不起作用

问题描述 投票:0回答:1

我有一个飞行员试验的数据集,其中包含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

[如果有人可以帮助我,我会很高兴:)

谢谢!

r if-statement syntax conditional-statements
1个回答
0
投票

也许您可以尝试这样的事情,例如test1_processed是数字,并且从0到12

data$allcorrect <- 0
data$allcorrect[data$test1_processed > 11] <- 1
© www.soinside.com 2019 - 2024. All rights reserved.