【发布时间】:2020-12-30 15:43:26
【问题描述】:
我一直在使用以下代码来生成特定变量的 ggplots 条形图:
ggplot(RPSdata, aes(x = RF.Age)) +
geom_bar(col="black",
fill ="grey",
alpha = .8) +
(aes(y = (..count..)/sum(..count..))) +
scale_y_continuous(labels=percent) +
labs(title="Risk Factor - Age", x ="Estimate", y="Proportion of Total") +
ggtitle("Risk Factor - Age") + theme(plot.title = element_text(hjust = 0.5)) +
scale_x_discrete(labels = c("No", "Yes", "Not Sure", "Missing"))
我对结果很满意,但也想从图表和 Y 轴百分比的计算中生成排除 NA/缺失的版本。我该怎么做?
非常感谢
数据样本:
> dput(head(RPSdata, 5))
structure(list(ï..ID.Rank = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_), Identifiable = c(0L, 0L, 0L, 0L, 0L), Population.Risk = structure(c(1L,
2L, 1L, 2L, 2L), .Label = c("1", "2", "3", "4", "5", "6"), class = "factor"),
Personal.Risk = c(50, 50, 60, 70, 25), Comparative.Risk.Age = structure(c(3L,
5L, 3L, 4L, 4L), .Label = c("1", "2", "3", "4", "5"), class = "factor"),
Comparative.Risk.Current = structure(c(NA, 3L, NA, 4L, NA
), .Label = c("1", "2", "3", "4", "5"), class = "factor"),
Comparative.Risk.Ex = structure(c(NA, NA, NA, NA, 3L), .Label = c("1",
"2", "3", "4", "5"), class = "factor"), Score.Exposure = structure(c(1L,
1L, 2L, NA, 1L), .Label = c("1", "2", "4", "5"), class = "factor"),
RF.Age = structure(c(3L, 2L, 3L, NA, 2L), .Label = c("0",
"1", "2"), class = "factor"), RF.Pollution = structure(c(3L,
2L, 2L, NA, 1L), .Label = c("0", "1", "2"), class = "factor"),
RF.Asbestos = structure(c(NA, 1L, 1L, NA, 1L), .Label = c("1",
"2"), class = "factor"), RF.Asthma = structure(c(2L, 2L,
2L, NA, 2L), .Label = c("0", "1", "2"), class = "factor"),
RF.BMI = structure(c(3L, 2L, 2L, NA, 3L), .Label = c("0",
"1", "2"), class = "factor"), RF.Gene = structure(c(3L, 2L,
3L, NA, 1L), .Label = c("0", "1", "2"), class = "factor"),
RF.COPD = structure(c(2L, 2L, 2L, NA, 3L), .Label = c("0",
"1", "2"), class = "factor"), RF.History = structure(c(1L,
2L, 2L, NA, 3L), .Label = c("0", "1", "2"), class = "factor"),
RF.Diet = structure(c(3L, 2L, 2L, NA, 2L), .Label = c("0",
"1", "2"), class = "factor"), RF.Radon = structure(c(3L,
2L, 3L, NA, 3L), .Label = c("0", "1", "2"), class = "factor"),
RF.Smoking = structure(c(2L, 2L, 2L, NA, 2L), .Label = c("0",
"1", "2"), class = "factor"), RF.Second.Smoke = structure(c(2L,
2L, 2L, NA, 2L), .Label = c("0", "1", "2"), class = "factor"),
Survival.One.Year = c(90, 50, 70, 80, 75), Survival.Five.Year = c(50,
NA, 50, NA, 50), Survival.Ten.Year = c(20, NA, 15, NA, 25
), Worry.Frequency = structure(c(1L, 4L, 2L, 2L, 3L), .Label = c("1",
"2", "3", "4"), class = "factor"), Worry.Intensity = structure(c(4L,
4L, 3L, 3L, 3L), .Label = c("1", "2", "3", "4"), class = "factor"),
Mental.Health.One = structure(c(4L, 4L, 2L, 4L, 3L), .Label = c("0",
"1", "2", "3"), class = "factor"), Mental.Health.Two = structure(c(3L,
4L, 2L, 3L, 2L), .Label = c("0", "1", "2", "3"), class = "factor"),
Mental.Health.Three = structure(c(3L, 4L, 2L, 4L, 4L), .Label = c("0",
"1", "2", "3"), class = "factor"), Mental.Health.Four = structure(c(4L,
4L, 2L, 4L, 4L), .Label = c("0", "1", "2", "3"), class = "factor"),
PHQ4 = c(10L, 12L, 4L, 11L, 9L), PHQ4.Anx = c(5L, 6L, 2L,
5L, 3L), PHQ4.Dep = c(5L, 6L, 2L, 6L, 6L), PHQ4.Bin = c(3L,
3L, 1L, 3L, 3L), Dep.Bin = c(1L, 1L, 0L, 1L, 1L), Anx.Bin = c(1L,
1L, 0L, 1L, 1L), Survival.Complete.Sense = c(1L, 0L, 1L,
0L, 1L), Survival.Semi.Sense = c(1L, 1L, 1L, 1L, 1L), PLCO.actual = c(NA_real_,
NA_real_, NA_real_, NA_real_, NA_real_), Age = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), Sex = c(NA,
NA, NA, NA, NA), Female = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_), Ethnicity = structure(c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), .Label = c(" ",
"Any Other Ethnic Group", "Asian/Asian Brit - Pakistani",
"Black/Blk Brit-Any oth Blk b/g", "Black/Blk Brit-Caribbean",
"Mixed-White & Black African", "Not Known", "Not Stated",
"White - any other White b/g", "White - British", "White - Irish"
), class = "factor"), Ethnicity.Code = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), Education = c(NA,
NA, NA, NA, NA), Education.Code = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), Pack.Years = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), Previous.condition = structure(c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), .Label = c(" ",
"Angina", "Asthma", "Chronic kidney disease", "COPD", "Diabetes",
"Heart attack", "Heart failure", "High blood pressure", "High cholesterol",
"Lung or pulmonary fibrosis", "Mini-stroke (TA)", "None",
"Peripheral vascular disease/Claudication", "Pneumonia",
"Rheumatoid arthritis", "Stroke", "Tuberculosis or TB"), class = "factor"),
Previous.condition.code = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_), Prevous.condition.any = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), Asbestos = structure(c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), .Label = c(" ",
"no", "no (but high risk occupation)", "yes"), class = "factor"),
Asbestos.code = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_), BMI = c(NA_real_, NA_real_, NA_real_,
NA_real_, NA_real_), Family.Lung.Cancer = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), Personal.Cancer.History = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), Smoking.status.direct = structure(c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), .Label = c(" ",
"current smoker", "former smoker"), class = "factor"), Smoking.status.directandderived.code = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), Comparative.sense = structure(c(4L,
2L, 4L, 2L, 3L), .Label = c(" ", "Anon Current", "Anon Ex",
"Blank", "Completed Both", "Current Completed as Ex", "Current Correct",
"Ex Completed Current", "Ex Correct"), class = "factor"),
Valid.Comparative.Smoke = c(0L, 1L, 0L, 1L, 1L), PLCO_Quartiles = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), filter_. = c(0L,
0L, 0L, 0L, 0L), Education_3Groups = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), Education_2Groups = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), PersonalRisk_Quintiles = c(5L,
5L, 5L, 5L, 3L), PersonalRisk_Quintiles_NHSOnly = c(5L, 5L,
5L, 5L, 4L), BMI_Cat = c(NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_), Age_mean = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), CompRiskAge_3groups = c(2L,
3L, 2L, 3L, 3L), Asbestos_2groups = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), RF.History_binary = c(0L,
1L, 1L, NA, 0L), RF.Age_Binary = c(0L, 1L, 0L, NA, 1L), RF.Pollution_Binary = c(0L,
1L, 1L, NA, 0L), RF.Asbestos_Binary = c(NA, 1L, 1L, NA, 1L
), RF.Gene_Binary = c(0L, 1L, 0L, NA, 0L), RF.COPD_Binary = c(1L,
1L, 1L, NA, 0L), RF.Radon_Binary = c(0L, 1L, 0L, NA, 0L),
RF.Smoking_Binary = c(1L, 1L, 1L, NA, 1L), RF.Second.Smoke_Binary = c(1L,
1L, 1L, NA, 1L), RF.BMI_Binary = c(0L, 0L, 0L, NA, 0L), RF.Diet_Binary = c(0L,
0L, 0L, NA, 0L), RF.Asthma_Binary = c(0L, 0L, 0L, NA, 0L),
PopulationRisk_correct = c(0L, 0L, 0L, 0L, 0L), PopRisk_3groups = c(3L,
3L, 3L, 3L, 3L), Worry.Freq_Any = c(0L, 1L, 1L, 1L, 1L),
Worry.Intensity_Any = c(1L, 1L, 1L, 1L, 1L), PLCOthreshold = c(NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_), ComparativeMulti_High = c(1L,
2L, 1L, 2L, 2L), ComparativeMulti_Low = c(1L, 1L, 1L, 1L,
1L)), row.names = c(NA, 5L), class = "data.frame")
【问题讨论】:
标签: r ggplot2 charts bar-chart