我有一個包含多個分類值的資料框,假設來自 vcd 包的關節炎資料集。
## Load vcd package
library(vcd)
## Load Arthritis dataset (data frame)
data(Arthritis)
colnames(Arthritis)
"ID" "Treatment" "Sex" "Age" "Improved"
我想為那些改善的患者創建一個治療計數的條形圖(x 軸與安慰劑和治療)。這是代碼:
Arthritis1 <- Arthritis %>%
dplyr::filter(Improved == "Marked")
ggplot(data = Arthritis1, aes(x = Treatment))
geom_bar()
但是,現在我想繪制百分比。也就是說,對于所有服用安慰劑的患者,屬于“顯著”改善者的百分比。對于所有“治療”患者,屬于“顯著”改善的患者的百分比。
我可以得到這樣的百分比。
a = table(Arthritis1$Treatment)[1]/table(Arthritis$Treatment)[1]
b = table(Arthritis1$Treatment)[2]/table(Arthritis$Treatment)[2]
Arthritis2 <- as.data.frame(c(a, b))
colnames(Arthritis2)[1] <- "var1"
str(Arthritis2)
'data.frame': 2 obs. of 1 variable:
$ var1: num 0.163 0.512
所以我想要一個有兩列的圖,值1作為頂部,安慰劑達到 0.163,治療達到 0.512。
但是,我還沒有找到一種將其繪制為百分比的方法,例如 geom_bar() 繪制計數。
uj5u.com熱心網友回復:
你需要geom_bar(stat = "identity"),如果你已經計算出百分比:
library(tidyverse)
library(vcd)
#> Loading required package: grid
data(Arthritis)
Arthritis %>%
filter(Improved == "Marked") %>%
count(Treatment) %>%
mutate(n = n / sum(n) * 100) %>%
ggplot(aes(Treatment, n))
geom_bar(stat = "identity")
labs(y = "Percentage")

由reprex 包(v2.0.1)于 2021 年 12 月 15 日創建
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/384680.html
上一篇:如何將y軸從計數更改為道具?
下一篇:ggplot2缺少y軸標簽
