Я пытаюсь преобразовать значения в одном столбце в NA
в зависимости от того, являются ли значения в другом соответствующем столбце NA
.Мне нужно сделать это для двух больших групп соответствующих столбцов, поэтому я не могу mutate
каждый столбец один за другим.
Например, ниже 2002 inflationNext2Years
превращается в NA
, так как 2002 realReturnNext2Years
NA
.
year <- c(2000, 2001, 2002)
realReturnNext1Years <- c(.1,.2,.3)
realReturnNext2Years <- c(.15,.25, NA)
realReturnNext3Years <- c(.45, NA, NA)
inflationNext1Years <- c(.02, .03, .07)
inflationNext2Years <- c(.03, .05, .08)
inflationNext3Years <- c(.04, .06, .09)
data <- data.frame(year, realReturnNext1Years, realReturnNext2Years, realReturnNext3Years, inflationNext1Years, inflationNext2Years, inflationNext3Years)
data
year realReturnNext1Years realReturnNext2Years realReturnNext3Years inflationNext1Years inflationNext2Years inflationNext3Years
1 2000 0.1 0.15 0.45 0.02 0.03 0.04
2 2001 0.2 0.25 NA 0.03 0.05 0.06
3 2002 0.3 NA NA 0.07 0.08 0.09
Я пытаюсь преобразовать data
в:
year realReturnNext1Years realReturnNext2Years realReturnNext3Years inflationNext1Years inflationNext2Years inflationNext3Years
2000 0.1 0.15 0.45 0.02 0.03 0.04
2001 0.2 0.25 NA 0.03 0.05 NA
2002 0.3 NA NA 0.07 NA NA
Поскольку у меня много столбцов, я не могу сделать этот столбец за раз.Я пытался использовать mutate_at
с ifelse()
, но не знал, как проверить, совпадает ли число лет.
У меня есть вектор имен столбцов realReturn
и еще один вектор inflation
имена столбцов.Я пытаюсь изменить столбцы инфляции на NA
, если их соответствующий realReturnColumn равен NA
, но оставить столбец инфляции таким же, если realReturnColumn не равен NA
.