Вот решение dplyr
.Сначала я создаю фрейм данных.
df <- data.frame(name = c("Tom", "Harry", "Charles"),
Amount = c(30, -30, 49),
Budget = c(51, 53, 55))
Затем я устанавливаю Budget
на Amount
, если Amount
меньше нуля, затем устанавливаю Amount
на NA
, если Amount
меньше нуля.
df %>%
mutate(Budget = ifelse(Amount < 0, Amount, Budget),
Amount = ifelse(Amount < 0, NA, Amount))
дает,
# name Amount Budget
# 1 Tom 30 51
# 2 Harry NA -30
# 3 Charles 49 55
Конечно, вы можете установить Amount
в ноль, а не NA
, если хотите.