R 用两个预测值绘制分类数据图

R 用两个预测值绘制分类数据图,r,ggplot2,categorical-data,R,Ggplot2,Categorical Data,这个问题是我所问问题的延伸,数据稍微复杂一些。这看起来很基本,但我已经为此头痛了好几天了 我需要通过自变量ses(x轴)和agegroup(可能是堆叠条形图分组)创建因变量(choice)患病率百分比图。理想情况下,我希望这个情节是一个并排的两个方面的情节,每个性别有一个方面 我的数据的相关部分如下表所示: subject choice agegroup sex ses John square 2 Female

这个问题是我所问问题的延伸,数据稍微复杂一些。这看起来很基本,但我已经为此头痛了好几天了

我需要通过自变量
ses
(x轴)和
agegroup
(可能是堆叠条形图分组)创建因变量(
choice
)患病率百分比图。理想情况下,我希望这个情节是一个并排的两个方面的情节,每个性别有一个方面

我的数据的相关部分如下表所示:

subject   choice       agegroup    sex       ses

John      square       2           Female    A
John      triangle     2           Female    A
John      triangle     2           Female    A
Mary      circle       2           Female    C
Mary      square       2           Female    C
Mary      rectangle    2           Female    C
Mary      square       2           Female    C
Hodor     hodor        5           Male      D
Hodor     hodor        5           Male      D
Hodor     hodor        5           Male      D
Hodor     hodor        5           Male      D
Jill      square       3           Female    B
Jill      circle       3           Female    B
Jill      square       3           Female    B
Jill      hodor        3           Female    B
Jill      triangle     3           Female    B
Jill      rectangle    3           Female    B
... [about 12,000 more observations follow]
我想使用
ggplot2
,因为它具有强大的功能和灵活性,以及明显的易用性。但我发现的每一个教程或指南都是从已经完成的90%的工作开始的,因为它们只是加载了R或其包提供的一个内置数据集。但我当然需要使用我自己的数据

我知道需要将其转换为longform,以便
ggplot2
能够使用它,但我就是没能把它做好。我对所有不同的数据处理软件包感到更加困惑,有些软件包似乎是其他软件包的一部分,或者类似的东西

编辑:我开始意识到,按照我最初的问题,用线图来绘制是行不通的。至少我现在不这么认为。因此,这里有一个可能的绘制此数据集的方法的模型(使用完全虚构的值):

颜色表示对
选择的不同响应


谁能帮我一下吗?如果您对更好地可视化数据有任何建议,请与我们分享

不确定我是否正确理解了您想要的输出。。这是第一次尝试

library( tidyverse )

df2 <- df %>% 
  mutate( agegroup = as.factor( agegroup ) ) %>%
  group_by( ses, agegroup, sex, choice ) %>%
  summarise( count = n() )

#   ses   agegroup sex    choice    count
#   <fct> <fct>    <fct>  <fct>     <int>
# 1 A     2        Female square        1
# 2 A     2        Female triangle      2
# 3 B     3        Female circle        1
# 4 B     3        Female hodor         1
# 5 B     3        Female rectangle     1
# 6 B     3        Female square        2
# 7 B     3        Female triangle      1
# 8 C     2        Female circle        1
# 9 C     2        Female rectangle     1
# 10 C     2        Female square        2
# 11 D     5        Male   hodor         4

ggplot(df2, aes( x = ses, y = count, group=agegroup, colour = agegroup)) +
  geom_point( stat='summary', fun.y=sum) +
  stat_summary(fun.y=sum, geom="line") + 
  facet_grid( c("choice", "sex" ) )
库(tidyverse)
df2%
突变(年龄组=as.factor(年龄组))%>%
分组依据(ses、年龄组、性别、选择)%>%
总结(计数=n()
#ses年龄组性别选择计数
#               
#1 A 2女性广场1
#2 A 2女性三角形2
#3 B 3女圈1
#4 B 3女霍多尔1
#5B3母矩形1
#6B3女广场2
#7 B 3女三角1
#8 C 2女圈1
#9C2母矩形1
#10C2女性广场2
#11 D 5男hodor 4
ggplot(df2,aes(x=ses,y=计数,组=年龄组,颜色=年龄组))+
几何点(stat='summary',fun.y=sum)+
统计汇总(fun.y=sum,geom=“line”)+
分面网格(c(“选择”、“性别”))

这显示了修订问题的点条形图和堆叠条形图。思考可视化的一些指导:你已经知道数据中的“故事”了吗?如果没有,那么您可能需要通过许多可视化来发现故事,构建最能显示故事的可视化


df── 附加包──────────────────────────────────────────────────────── tidyverse 1.2.1──
#> ✔ ggplot2.2.1✔ purrr 0.2.4
#> ✔ tibble 1.4.2✔ dplyr 0.7.4
#> ✔ tidyr 0.8.0✔ stringr 1.3.0
#> ✔ readr 1.1.1✔ 猫0.3.0
#> ── 冲突─────────────────────────────────────────────────────────── tidyverse_冲突()──
#> ✖ dplyr::filter()屏蔽stats::filter()
#> ✖ dplyr::lag()屏蔽stats::lag()
#年龄组读取为数字-转换为系数
df$年龄组%
总结()
DFU科目
#>#tibble:4 x 4
#>#组:受试者、年龄组、社会经济地位[?]
#>受试者年龄组性别
#>            
#>1名Hodor 5 D男性
#>2吉尔3 B女
#>3约翰2女
#>4玛丽2 C女
#按主题计算比例选择
df_主题_选择%
#按最精细的组汇总计数以进行分析
分组依据(主题、选择)%>%
汇总(n=n())%>%
#根据计数计算比例
变异(p=属性表(n))
主题选择
#>#A tibble:11 x 4
#>#分组:受试者[4]
#>主题选择
#>             
#>1 Hodor Hodor 4 1.00
#>2吉尔圆1 0.167
#>3吉尔·霍多尔10.167
#>4吉尔矩形1 0.167
#>吉尔广场5号20.333
#>6吉尔三角1 0.167
#>约翰广场7号10.333
#>8约翰三角2 0.667
#>9玛丽圈10.250
#>10.1 0.250
#>玛丽广场11号20.500
#通过连接将结果放在一起
df_已加入%
左联合(df_subject,by=“subject”)%>%
选择(受试者、ses、性别、年龄组、选项、p)
df_加入