#r #variables #dplyr
Вопрос:
Не вижу другого такого вопроса, как этот. Я использовал mutate для создания новых переменных, но не могу найти учебник, в котором показано, как это сделать: я пытаюсь добавить 2 к значению hsi, если значение con равно NALFD
con <- c('NALFD', 'NALFD', 'NALFD', 'NASH', 'NASHCC')
hsi <- c(45.71571, 37.09238, 48.89828, 46.37123, 39.8328)
df <- data.frame(con, hsi)
Таким образом, hsi должен быть: 47.71571, 39.09238, 50.89828, 46.37123, 39.8328
Спасибо.
Ответ №1:
Вы можете использовать if_else
—
library(dplyr)
df <- df %>% mutate(hsi = if_else(con == 'NALFD', hsi 2, hsi))
df
# con hsi
#1 NALFD 47.71571
#2 NALFD 39.09238
#3 NALFD 50.89828
#4 NASH 46.37123
#5 NASHCC 39.83280
Также в базе R —
df <- transform(df, hsi = ifelse(con == 'NALFD', hsi 2, hsi))
Комментарии:
1. Не работает с моим полным набором данных со 158 строками m <- m %>% dplyr::мутировать(HSI = if_else(Индикация == ‘NALFD’, HSI 2, HSI)) проблеск(m), 45.71571, 37.09238 — 37 должно быть 39, первый не NALFD
2. Похоже, использование «» вместо » вокруг НАЖБП сделало свое дело. Имеет ли это смысл?
3. Ронак — вы удалили свой комментарий. Я хотел ответить. Еще раз, что это было?
4. работает, должно быть, была опечатка, но вот подмножество — sub