在R中创建相对频率表和图

时间:2014-03-09 11:13:39

标签: r

以下是数据集。 https://docs.google.com/spreadsheet/ccc?key=0AjmK45BP3s1ydEUxRWhTQW5RczVDZjhyell5dUV4YlE#gid=0

代码:

counts = table(finaldata $ satjob,finaldata $ degree) barplot(计数,xlab =“完成9-12年级后的最高学位”,col = c(“深蓝”,“Blueviolet”,“deepPink4”,“goldenrod”),图例=(rownames(计数)))

以下条形图是上述代码的结果。 https://docs.google.com/file/d/0BzmK45BP3s1yVkx5OFlGQk5WVE0/edit

现在,我想创建“计数”的相对频率表的图。

为了创建相对频率表,我需要将列的每个单元格除以列总数,以获得该单元格的相对频率,以及其他人的相对频率。如何去做。

我已尝试过此公式计数/总和(计数),但这不起作用。计算[1:4] / sum(计数[1:4]),这给出了第一列的相对频率。

帮助我在同一张表中为其他列获取相同内容。

1 个答案:

答案 0 :(得分:1)

我是plyr& ggplot2,因此您可能需要下载以下几个软件包才能正常工作。

install.packages('ggplot2') # only have to run once
install.packages('plyr')    # only have to run once
install.packages('scales')  # only have to run once

library(plyr)
library(ggplot2)
library(scales)

# dat <- YOUR DATA
dat_count <- ddply(ft, .(degree, satjob), 'count')
dat_rel_freq <- ddply(dat, .(degree), transform, rel_freq = freq/sum(freq))

ggplot(dat_rel_freq, aes(x = degree, y = rel_freq, fill = satjob)) +
  geom_bar(stat = 'identity') +
  scale_y_continuous(labels = percent) +
  labs(title = 'Highest Degree After finishing 9-12th Grade\n', 
       x = '', 
       y = '',
       fill = 'Job Satisfaction')

enter image description here