以下是数据集。 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]),这给出了第一列的相对频率。
帮助我在同一张表中为其他列获取相同内容。
答案 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')