Я хотел бы поменять местами значения 2 столбцов, если BLOOD_PRESSURE_SYSTOLIC <= BLOOD_PRESSURE_DIASTOLIC
.
Данные:
df <- data.frame(ID = 1:5, BLOOD_PRESSURE_SYSTOLIC = c(35, 66, NA, 104, 139), BLOOD_PRESSURE_DIASTOLIC = c(98, 46, 160, 159, NA))
# ID BLOOD_PRESSURE_SYSTOLIC BLOOD_PRESSURE_DIASTOLIC
# 1 1 35 98
# 2 2 66 46
# 3 3 NA 160
# 4 4 104 159
# 5 5 139 NA
Требуемые данные:
# ID BLOOD_PRESSURE_SYSTOLIC BLOOD_PRESSURE_DIASTOLIC
# 1 1 98 35
# 2 2 66 46
# 3 3 NA 160
# 4 4 159 104
# 5 5 139 NA
Код: Я придумал следующий код, но он не выводит результаты, которые мне нужны (особенно при обработке пропущенных значений), и он не очень удобочитаем.
library(dplyr)
df %>%
mutate(BLOOD_PRESSURE_SYSTOLIC2 = if_else(BLOOD_PRESSURE_SYSTOLIC <= BLOOD_PRESSURE_DIASTOLIC, BLOOD_PRESSURE_DIASTOLIC, BLOOD_PRESSURE_SYSTOLIC),
BLOOD_PRESSURE_DIASTOLIC2 = if_else(BLOOD_PRESSURE_SYSTOLIC <= BLOOD_PRESSURE_DIASTOLIC, BLOOD_PRESSURE_SYSTOLIC, BLOOD_PRESSURE_DIASTOLIC)) %>%
select(ID, BLOOD_PRESSURE_SYSTOLIC = BLOOD_PRESSURE_SYSTOLIC2, BLOOD_PRESSURE_DIASTOLIC = BLOOD_PRESSURE_DIASTOLIC2)