r-是/否因素的频率和比例的饼图



我是R语言的新手,所以如果我的问题有点基础,请原谅我。但我仍然无法想出解决方案。

我有一个数据框架,其中包含有是/否级别的分类变量。我试图使用饼图和直方图来表示所有变量(是/否,编码为0/1(的每个级别的结果。

让我展示一个我的数据示例
我有06个因子:A、B、C、D、E和G,每个因子都有0/1级。

set.seed(99)
A = sample(c(0,1), 100, replace = T)
B = sample(c(0,1), 100, replace = T)
C = sample(c(0,1), 100, replace = T)
D = sample(c(0,1), 100, replace = T)
E = sample(c(0,1), 100, replace = T)
G = sample(c(0,1), 100, replace = T)
df = data.frame(A,B,C,D,E,G)
df = as.data.frame(lapply(df, factor))
df %>%
pivot_longer(cols = c(A,B,C,D,E,G),
names_to = "group",
values_to = "people") %>%
group_by(group) %>%
summarize(Sumppl = length(people)) %>%
ggplot(aes(x="", y = Sumppl, fill = group)) +
geom_bar(stat = "identity",width = 1, position = "stack")+
coord_polar("y") + 
theme_minimal()+
theme(axis.text.x=element_blank())

我想为每个级别(0和1(制作一个所有这些变量的饼图。然后,我想比较另一个分类变量的每个级别(具有两种模式的性别,男性/女性(

我从另一个问题中尝试了这个解决方案:带有多个伪变量的饼图但它似乎给了我一个错误的答案,我可以弄清楚为什么(向量的长度是所有情况的总数,而不是每个级别(

感谢您的帮助

我不确定我是否完全理解您想要做什么,但让我们根据您的部分代码构建一个简单的表:

df = data.frame(A,B,C,D,E,G) # Note we are not converting to factors
df2 <- df %>%
pivot_longer(cols = c(A,B,C,D,E,G),
names_to = "group",
values_to = "people")
df2
#      people
# group  0  1
#     A 47 53
#     B 53 47
#     C 42 58
#     D 59 41
#     E 45 55
#     G 51 49

代码的其余部分只是对行求和,但它们的总和都是100,所以饼图的信息量不是很大。您的目标是使用所有数据生成一个饼图,还是每行数据生成6个饼图?

最新更新