首页 文章

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

提问于
浏览
0

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

码:

counts = table(finaldata $ satjob,finaldata $ degree)barplot(counts,xlab =“完成9-12级后的最高学位”,col = c(“Dark Blue”,“Blueviolet”,“deepPink4”,“goldenrod”) ,legend =(rownames(counts)))

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

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

为了创建相对频率表,我需要将列的每个单元格除以列总数以获得该单元格的相对频率,因此对于其他单元格也是如此 . 怎么去做 .

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

帮助我在同一个表中为其他列获取相同的内容 .

1 回答

  • 1

    我是 plyrggplot2 的忠实粉丝,因此您可能需要下载以下几个软件包才能正常工作 .

    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

相关问题