我试图总结一份家庭调查的数据,因此我的大部分数据都是分类(因子)数据。我想用某些问题的响应频率的图表来概括它(例如,百分比条形图回答某些问题的家庭数量,并显示置信区间的误差线)。我找到了这个很棒的教程,我本以为这就是我祈求的答案(http://www.cookbook-r.com/Manipulating_data/Summarizing_data/),但事实证明这只能帮助连续数据。
我希望能使用ggplot(或类似工具)绘制条形图,使用这些摘要数据并显示置信区间误差线。我曾尝试修改上面教程中提供的代码来计算上述列,但由于我是R的新手,所以有些困难!我一直在尝试使用ggply包,但对语法不太熟悉,因此我只能使用以下代码到达目前为止:
但最终我得到了这个:
我需要的是类似的东西,它将允许我计算计数的比例和这些比例的标准误差/置信区间。
基本上,我想要能够为我调查数据中提出的每个问题生成像这样的摘要表:
# X5employf X5employff N(count) proportion SE of prop. ci of prop
# 1 1 20 0.64516129 ? ?
# 1 2 1 0.03225806 ? ?
# 1 3 9 0.29032258 ? ?
# 1 NA 1 0.290322581 ? ?
# 2 4 1 0.1 ? ?
structure(list(X5employf = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("1", "2", "3"), class = "factor"), X5employff = structure(c(1L, 2L, 3L, NA, 4L, 5L, 6L, 7L, 8L, 4L, 5L, 6L, 7L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8"), class = "factor"), count = c(20L, 1L, 9L, 1L, 1L, 5L, 2L, 1L, 1L, 4L, 5L, 4L, 1L)), .Names = c("X5employf", "X5employff", "count"), row.names = c(NA, -13L), class = "data.frame")
我希望能使用ggplot(或类似工具)绘制条形图,使用这些摘要数据并显示置信区间误差线。我曾尝试修改上面教程中提供的代码来计算上述列,但由于我是R的新手,所以有些困难!我一直在尝试使用ggply包,但对语法不太熟悉,因此我只能使用以下代码到达目前为止:
> X5employ_props <- ddply(X5employ_counts, .(X5employf), transform, prop=count/sum(count))
但最终我得到了这个:
X5employf X5employff count prop
1 1 1 20 1.0000000
2 1 2 1 1.0000000
3 1 3 9 1.0000000
4 2 4 1 0.2000000
5 3 4 4 0.8000000
6 2 5 5 0.5000000
7 3 5 5 0.5000000
8 2 6 2 0.3333333
9 3 6 4 0.6666667
10 2 7 1 0.5000000
11 3 7 1 0.5000000
12 2 8 1 1.0000000
13 1 <NA> 1 1.0000000
我的所有比例都为1,这可能是因为它们是跨行计算而不是跨列计算。
我想知道是否有人可以帮助我或者知道能够完成这个工作的包/代码!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
因子11 3 1 1 1 3 1 1 1 3 1 1 1 2 2 3 3 3 1 2 2 2 2 2 1 1 1 3 3 3 3 3 3 2 1 1 3 1 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
因子21 4 <NA> 1 2 4 3 1 1 6 1 1 1 5 5 6 7 5 1 6 6 7 5 4 1 3 1 6 5 5 5 6 4 5 3 3 5 1 4 5 1 1 1 1 1 3 3 3 1 3 1 1 1 3 8
- marty_cstructure(list(X5employf = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L), .Label = c("1", "2", "3"), class = "factor"), X5employff = structure(c(1L, 2L, 3L, NA, 4L, 5L, 6L, 7L, 8L, 4L, 5L, 6L, 7L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8"), class = "factor"), count = c(20L, 1L, 9L, 1L, 1L, 5L, 2L, 1L, 1L, 4L, 5L, 4L, 1L)), .Names = c("X5employf", "X5employff", "count"), row.names = c(NA, -13L), class = "data.frame")
- marty_c