Векторизованный оператор IF в сочетании с logi c AND в R - PullRequest
0 голосов
/ 17 марта 2020

Это мой код, который я sh должен иметь:

a=1
b=c(2,1.5,0.7)

if (a==1 & b<1) {

     b=1   # but here's the problem, that only the first value of the vector b is considered

}  # end if loop

print(b)

Хорошо, я мог бы также написать этот код, но надеюсь, что смогу предотвратить его с вашей помощью.

a=1
b=c(2,1.5,0.7)

if (a==1) {

     for (i in 1:length(b)) {

          if (b[i]<1) {

               b[i]=1  

          }  # end if loop

     }  # end for loop 

}  # end if loop

print(b)

Я также нашел этот вопрос Векторизованное утверждение IF в R? , но я не могу перенести его в мою проблему ...

Заранее спасибо за помощь.

1 Ответ

1 голос
/ 17 марта 2020
b <- ifelse(a==1 & b<1, 1, b)
...