У меня есть некоторые данные, которые выглядят так:
ID Married Age Visits
1 1 0 35 0
2 2 1 0 7
3 3 0 29 19
df <- data.frame(
ID = c(1L, 2L, 3L),
Married = c(0L, 1L, 0L),
Age = c(35L, 0L, 29L),
Visits = c(0L, 7L, 19L)
)
Представьте, что для этих данных Married
подразумевается как фиктивная переменная, но Age
и Visits
определенно не должно быть 0. Я хотел бы знать, как сделать две вещи:
- Как заменить, только в столбцах
Age
и Visits
, заменить NA назначения 0? - Как заменить, только в столбцах
Age
и Visits
, заменить -999 для значений 0?Это просто для любопытства, потому что я хотел бы знать, как это сделать без использования na_if()
.
Этот код не совсем верный, потому что он также меняет столбец Married.
df <- na_if(df, 0)
давая:
ID Married Age Visits
1 1 NA 35 NA
2 2 1 NA 7
3 3 NA 29 19
, тогда как я хотел бы (1):
ID Married Age Visits
1 1 0 35 NA
2 2 1 NA 7
3 3 0 29 19
и (2):
ID Married Age Visits
1 1 0 35 -999
2 2 1 -999 7
3 3 0 29 19
Я пробовал что-то вроде:
df <- na_if(c(df$Age, df$Visits), 0))
, но это не так.