我有66个人的年龄和bmi(体重指数(数据。根据现有知识,bmi 在 18.5 和 24.9 之间是正常的。我希望在 R 中将 BMI 分类为正常和异常 bmi
您可以使用
transform(df, type = c("abnormal", "normal")[(bmi >= 18.5 & bmi <= 24.9) + 1])
# age bmi type
#1 12 15.6 abnormal
#2 10 19.2 normal
#3 31 23.3 normal
#4 56 25.0 abnormal
#5 19 18.0 abnormal
或者使用简单的ifelse
transform(df, type =ifelse(bmi >= 18.5 & bmi <= 24.9, "normal", "abnormal"))
我们还可以在dplyr
/data.table
中使用between
library(dplyr)
df %>% mutate(type = c("abnormal", "normal")[between(bmi, 18.5, 24.9) + 1])
数据
df <- data.frame(age = c(12, 10, 31, 56, 19), bmi = c(15.6, 19.2, 23.3, 25, 18))