условные изменения в зависимости от значения другого столбца - PullRequest
1 голос
/ 30 марта 2019

Я пытаюсь изменить значение CMT на 1 с 2, когда столбец EVID равен 1, в основном я пытаюсь сделать следующее:

, когда NEW $ EVID == 1, затем NEW $ CMT == NEW $ CMT-1

, но не работает

1 Ответ

0 голосов
/ 30 марта 2019

Вы можете использовать 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
...