【发布时间】:2018-12-08 08:23:14
【问题描述】:
如果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)
【问题讨论】:
标签: r dplyr data-manipulation