根据 R 中的条件包含满足条件创建一个新列

Posted

技术标签:

【中文标题】根据 R 中的条件包含满足条件创建一个新列【英文标题】:Create a new column based on conditional inclusion fulfilling conditions in R 【发布时间】:2021-01-22 10:31:29 【问题描述】:

我的数据集如下所示:

df <- data.frame(PatientID = c("3454","345","5","345","567","79"), sex = c(Female, Female, Female, Male, Male, Male)
                 waist = c(60, 89, 90, 110, 200, 150),  tryglicerides = c(100, 150, 170, 105, 200, 140),HDL = c(50, 41, 20, 37, 30, 40), hypertension = c(FALSE, TRUE, TRUE, FALSE, TRUE, FALSE), diabetes = c(FALSE, FALSE, TRUE, TRUE, TRUE, FALSE), stringsAsFactors = F)

你能帮我用 R 编码吗?

谢谢!

我需要创建一个名为METABOLIC_SYNDROME 的新列。参与者要成为TRUEMETABOLIC_SYNDROME 列中需要满足这些条件的3/5:

腰围:女性≥89,男性≥102 甘油三酯:≥150 HDL:≤40男,≤50女 高血压:是的 糖尿病:是的

【问题讨论】:

【参考方案1】:

您可以总结 5 个布尔表达式来满足您的所有要求:

waist <- (df$sex == 'Female' & df$Waist >= 89) | (df$sex == 'Male' & df$Waist >= 102)
trygliceride <- df$tryglicerides >= 150
hdl <- (df$sex == 'Female' & df$HDL <= 50) | (df$sex == 'Male' & df$HDL <= 40)
hypertension <- df$hypertension
diabetes <- df$diabetes

df$METABOLIC_SYNDROME <- waist + trygliceride + hdl + hypertension + diabetes >= 3

【讨论】:

以上是关于根据 R 中的条件包含满足条件创建一个新列的主要内容,如果未能解决你的问题,请参考以下文章

创建一个新列,它是满足两个条件的多个其他列中的日期数之和

如何根据一个数据帧中的列值和R中另一个数据帧的列标题名称有条件地创建新列

创建一个标识是否满足所有条件的列

在 R 中,如何使用各种条件将数字列变为一个新列?

根据sql中的条件创建新列?

如何根据满足某些条件的现有文件创建和重新排列新的 csv 文件?