花括号问题-R-ifelse语句在for循环中

花括号问题-R-ifelse语句在for循环中,r,R,我有一个代码由于大括号问题而无法工作 o1 = read.table('/Users/manshi/Desktop/PSYC57H3/PSYC57_Homework3/Object1.csv', header=TRUE, sep=",") PredictedValue = vector(mode = 'numeric', length = 100) PredictionError = vector(mode = 'numeric', length = 100) PredictedValue[1]

我有一个代码由于大括号问题而无法工作

o1 = read.table('/Users/manshi/Desktop/PSYC57H3/PSYC57_Homework3/Object1.csv', header=TRUE, sep=",")
PredictedValue = vector(mode = 'numeric', length = 100)
PredictionError = vector(mode = 'numeric', length = 100)
PredictedValue[1] = 0
AlAccepts = vector(mode = 'logical', length = 100)
for (trial in 1:100){
  ifelse (AlAccepts[trial] == FALSE, 0, 1) {
    PredictionError[trial] = o1$Reward[trial] - PredictedValue[trial]
    PredictedValue[trial + 1] = PredictedValue[trial] + .3*PredictionError[trial]
  } ifelse (AlAccepts[trial] == TRUE, 0, 1) {
PredictedValue[trial + 1] = PredictedValue[trial]
  }
}
我收到的错误消息是:

> for (trial in 1:100){
+   ifelse (AlAccepts[trial] == FALSE, 0, 1) {
Error: unexpected '{' in:
"for (trial in 1:100){
  ifelse (AlAccepts[trial] == FALSE, 0, 1) {"
>     PredictionError[trial] = o1$Reward[trial] - PredictedValue[trial]
>     PredictedValue[trial + 1] = PredictedValue[trial] + .3*PredictionError[trial]
>   }   ifelse (AlAccepts[trial] == TRUE, 0, 1) {
Error: unexpected '}' in "  }"
>     PredictedValue[trial + 1] = PredictedValue[trial]
>   }
Error: unexpected '}' in "  }"
> }
Error: unexpected '}' in "}"
> 
我做错了什么

ifelse(alaaccepts[trial]==FALSE,0,1)
是一个函数,返回值,在本例中为0或1。未执行进一步的条件执行,因此以下括号显示语法错误。使用
else if(){}
应能按预期工作:

for (trial in 1:100){
  if (AlAccepts[trial] == FALSE) {
    PredictionError[trial] = o1$Reward[trial] - PredictedValue[trial]
    PredictedValue[trial + 1] = PredictedValue[trial] + .3*PredictionError[trial]
  } else if(AlAccepts[trial] == TRUE) {
PredictedValue[trial + 1] = PredictedValue[trial]
  }
}

在r中,有ifelse()函数和if(){}else{}构造。我想你是在找后者。你应该把
ifelse
改为
else if