Вы можете использовать ifelse
:
NEW$CMT <- ifelse( NEW$EVID==1, NEW$CMT-1, NEW$CMT)
Или вы можете использовать булеву арифметику:
NEW$CMT <- NEW$CMT -( NEW$EVID==1)*1
Вы также должны понимать, что в R оператор "==" несделать назначение.И, как правило, безопаснее использовать all.equal
, если вы не уверены, что ваши значения целые.Рассмотрим этот результат:
seq(0,1, by=0.1) == (0:10)/10
[1] TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE TRUE TRUE TRUE