我有一个R中的数据框,包含LOS,AGE和多个更广泛的条件
LOS AGE broader.condition
1 75 Spinal
2 68 Urology
1 88 Thoracic
8 76 Spinal
5 70 Billary
... ... ...
我想针对每个较宽泛的条件绘制AGE与LOS,即在r中具有匹配的第三列条件的AGE与LOS。这可以通过名称指定(即,如果需要,可以专门查看某个特定的更广泛的条件),也可以自动运行以遍历整个数据集并自动绘制每个更广泛的条件
任何建议,将不胜感激,谢谢!
以下可重现的类似数据集
data <- structure(list(LOS = c(1, 2, 1, 8, 5, 1, 1, 1, 3, 1, 1, 1), ADMISSION_AGE_YEARS = c(75, 68, 88, 76, 70, 28, 47, 57, 74, 68, 51, 67), broader.condition = structure(c(47L, 56L, 51L, 47L, 51L, 6L, 3L, 11L, 51L, 3L, 11L, 6L), .Label = c("Acute Liver Failure", "Aortic Disease", "Arthritis and Lim Deformity/Fractures", "Asphyxiation", "Billary", "Bowel Infection/Perforation/Infarction", "Breast Cancer", "Cancer (Unoperated)", "Cardiac Arrest", "Cardiac Arythmia", "Cerebral Aneurysm (Non-Ruptured)", "Cerebral Infarction", "Cerebral Oedema", "Chronic Liver Disease", "COPD/Asthma/Respiratory Failure", "Drug Overdose and Poisoning", "Ear/Nose/Throat", "Electrolyte", "Encephalitis", "Endocrine", "Epilepsy", "Gastroectomy", "Gynaecological Cancer/Surgery", "Heart Failure", "Hydrocephalus", "Hyperventilation Syndromes", "Infection incl. unspecified", "Influenza", "Interstitial Pulmonary Disease", "Large Bowel Cancer", "Max Fax Surgeries", "Meningitis", "Myocardial Infarction", "Neuro-Surgical Cancer", "Obesity", "Other Inter-Cerebral Haemmorhage", "Pancreatitis", "Perforation of Oesophagus", "Peripheral Vascular Disease (Inlc. Ischaemia and Infarction", "Pleural Effusion", "Pneumonia", "Psychiatric", "Pulmonary/Veno-Thrombo Embollism", "Skin Inflammation/Infection", "Skull and Facial Fractures", "Spinal Chord Weakness", "Spinal Surgery/Fractures", "Spinal Trauma", "Sub-Arachnoid Haemmorhage", "Systemic Weakness", "Thoracic/Abdominal Aortic Aneurysm (Non-Ruptured)", "Thoracic/Abdominal Aortic Aneurysm (Ruptured incl. injury)", "Trauma to Intra-Abdominal Organs/Vessels", "Trauma to Thoracic Cage", "Traumatic Inter-Cerebral Haemmorhage/Contusions/Oedema", "Urology/Renal Surgery" ), class = "factor")), .Names = c("LOS", "ADMISSION_AGE_YEARS", "broader.condition"), row.names = c(4L, 5L, 14L, 16L, 17L, 18L, 19L, 31L, 33L, 38L, 39L, 40L), class = "data.frame")
`
如果我正确理解了您的问题,我认为filter
从dplyr
软件包中使用是一个不错的选择。
确定第三列的唯一值:
levs <- unique(data$broader.condition)
过滤特定条件的数据并绘制:
require(dplyr)
fdata <- filter(data, broader.condition == levs[1])
plot(fdata$LOS, fdata$ADMISSION_AGE_YEARS,
pch=19, xlab= 'LOS', ylab= 'AGE', main= paste0(levs[1]))
或循环运行以在单独的图中绘制所有条件:
for (i in 1:length(levs))
{
temp <- filter(data, broader.condition == levs[i])
plot(temp$LOS, temp$ADMISSION_AGE_YEARS,
pch=19, xlab= 'LOS', ylab= 'AGE', main= paste0(levs[i]))
}
另外,您可以轻松地ggplot2
在同一图上用不同的颜色绘制所有条件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句