我有一个因子变量,条件,告诉我受试者是否接受了测试:
data$condition.f <- factor(data$condition, labels = c("notest", "test"))
我有一个变量,x包含对问题的右(1)和错误(0)响应。
> data$x
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[42] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA 1 1 1 NA NA 1 0 NA 1 1 1 0 0 0 1 0 1 0
[83] 1 1 0 1 NA 1 0 1 1 1 1 1 NA 1 NA 0 1 1 1 0 1 0 1 1 0 NA 1 1 1 1 1 1 0 1 NA 1 0 0
向量的前半部分对应于未进行测试的那些(因此是NA),其余部分代表那些参加测试的那些。
我想替换那些用0测试的那些NAs。我尝试了以下代码:
if (data$condition.f == "test") {
data$x[which(is.na(data$x))] <- 0
}
但是我收到了错误
Warning message:
In if (data$condition.f == "test") { :
the condition has length > 1 and only the first element will be used
我不确定究竟是什么问题,虽然我知道它与 if 语句有关。有没有更好的方法来替换那些参加测试的那些NAs为0?
谢谢
答案 0 :(得分:3)
您的问题出现是因为您尝试将矢量(setTimeout(myFunction.bind(this, 'p'), 1000);
)与字符串(data$condition.f
)进行比较。
"test"
呢?
修改:我在 thelatemail 的建议中修正了我的错误。