Было бы полезно предоставить фиктивный набор данных, чтобы мы могли поработать над этим. Возможно, в вашем наборе данных есть несколько NA, вызывающих эту ошибку.
В любом случае, используя библиотеку dplyr, вы можете сделать оператор ifelse
вместе с mutate
, чтобы создать новый столбец с вашим результатом вычисления:
library(dplyr)
Output_All <- Output_All %>% mutate(Earned_Multiplier = ifelse(Earned_Duration == 0, 0,
ifelse(Earned_Duration>0&Earned_Duration<=30, (Earned_Duration/30)*0.347,
ifelse(Earned_Duration>30&Earned_Duration<=60, (0.347+((Earned_Duration/30)*0.16)), #close with final else here, if none of the above is met
))))# or continue with more ifelse statements
Относительно НС:
Если у вас есть NA, и они вызывают у вас проблемы, в зависимости от ваших предпочтений, вы можете включить это как часть своих логических утверждений:
!is.na(Earned_Duration) # dont forget to add & if you add it as a condition
, чтобы удостовериться, что NA игнорируются.