如果 BLOOD_PRESSURE_SYSTOLIC <= BLOOD_PRESSURE_DIASTOLIC
,我希望交换2列的值。
数据:
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)