为R中的调查创建比较比例表的有效方法

时间:2015-06-20 17:13:17

标签: r data-visualization survey

我想要一种简单有效地创建比例比较表的方法,用于比较人口和人口子集的调查答案。

这是一个示例数据集:

id <- c(11, 12, 13, 14, 15, 16)
gender <- c("M", "M", "F", "F", "M", "F" )
trade.belief <- c("I love NAFTA", "I hate NAFTA", "I love NAFTA", "I hate NAFTA", "I hate NAFTA", "I love NAFTA" )
favorite.color <-c("My favorite color is green", "My favorite color is green", "My favorite color is blue", "My favorite color is blue", "My favorite color is blue", "My favorite color is green")
votes.in.elections <- c("Yes", "Yes", "No", "Yes", "Yes", "Yes")
df <- data.frame(id, gender, trade.belief, votes.in.elections, favorite.color)
df.green <- df[df$favorite.color == "My favorite color is green",]
df.blue <- df[df$favorite.color == "My favorite color is blue",]

对于所有调查问题,大多数在线调查工具都有一种有效的方式来过滤或选择喜欢绿色的人,并将其与一般人群或喜欢蓝色的人进行比较。

所以,如果我想看看大多数人投票或喜欢北美自由贸易协定是他们最喜欢的颜色是绿色,我可以做

table(df[df$favorite.color == "My favorite color is green",])

但是,这对于与其他子集群体进行比较并不好,而且它也是查看数据的一种非常低效的方式。

  1. 我喜欢在所有调查问题和变量中,对喜欢绿色的人,一般人群和喜欢蓝色的人进行可视化的方法。比例表,而非计数。

  2. 理想情况下,我还想用条形图来形象化这一点。我的想法是,人们会想在ggplot上使用data.wrapper功能。

1 个答案:

答案 0 :(得分:0)

为了获得一张漂亮的表格,比较不同喜欢的颜色和不同级别的NAFTA爱情百分比,你可以使用from base64 import b64decode, b64encode # used to encode/decode image from django.db import models class TimeStampMixin(models.Model): class Meta: abstract = True created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) class Driftwood(TimeStampMixin): user = models.ForeignKey(User) title = models.CharField(max_length=255) description = models.TextField(max_length=1000) slug = models.SlugField(max_length=255) class Image(TimeStampMixin): driftwood = models.ForeignKey(Driftwood) image = models.ImageField(upload_to='static/images') # gets encoded as a string in the save method encoded_image = models.TextField(blank=True, null=False, default='') 功能:

prop.table()

要想象这一点,您可以使用ggplot中的prop.table(table(df$favorite.color, df$trade.belief)) 函数:

facet_wrap()

或者,如果你想在相同的情节中使用它们,你可以使用填充美学:

df$trade.belief <- as.factor(df$trade.belief)
ggplot(df, aes(x=trade.belief))+geom_bar()+facet_wrap(~favorite.color)