tumpukan barplot proporsi usia

Sep 27 2020
region   age   total     p
<fct>    <fct> <int> <dbl>
SSC20005 < 40     16 0.485
SSC20005 >=40     17 0.515
SSC20012 < 40    247 0.581
SSC20012 >=40    178 0.419
SSC20018 < 40     50 0.5  
SSC20018 >=40     50 0.5  

Saya mencari untuk membuat barplot bertumpuk untuk setiap wilayah yang diisi oleh kolom "p", sehingga tinggi batang = 1.

Saya sudah mencoba menggunakan

ggplot(data = cbind(id = 1,age_prop), aes(x = id, fill = p)) +
  geom_bar(position = "fill", stat = "identity") +
  labs(x = "Age Bracket", y = "Proportion")

Namun, saya terus menerima pesan kesalahan yang mengatakan

Kesalahan: Argumen 2 harus panjang 1, bukan 1000 (1000 berkaitan dengan kumpulan data lokal saya, kesalahan di sini lebih suka panjang 6)

Bantuan apa pun akan dihargai.

Jawaban

1 RonakShah Sep 27 2020 at 11:01

Apakah Anda ingin filloleh patau age? Coba:

library(ggplot2)
ggplot(data = df, aes(x = region, y = p, fill = age)) + 
  geom_bar(position = "fill", stat = "identity") + 
  labs(x = "Age Bracket", y = "Proportion")

data

df <- structure(list(region = c("SSC20005", "SSC20005", "SSC20012", 
"SSC20012", "SSC20018", "SSC20018"), age = c("<40", ">=40", "<40", 
">=40", "<40", ">=40"), total = c(16L, 17L, 247L, 178L, 50L, 
50L), p = c(0.485, 0.515, 0.581, 0.419, 0.5, 0.5)), 
class = "data.frame", row.names = c(NA, -6L))