【问题标题】:Creating an R barplot with a subset of my dataframe使用我的数据框的子集创建 R 条形图
【发布时间】:2020-06-24 19:50:36
【问题描述】:

我正在尝试使用以下数据框和代码在 R 中制作条形图。但是,当我这样做时,年份列也会插入到我的图表中。有没有办法阻止这种情况发生,但仍保持我的图表按年份排序?

 barplot(t(as.matrix(Number_Letter_Year_DF)), beside=TRUE, 
            xlab="Year", ylab="Number", 
            names.arg=c("2016","2017", "2018"),
            legend= c("A", "B","C","D","E","F"),  args.legend = list(title="Letter", x="topright", cex=.7))
            abline(h=0)



Year     A     B     C     D     E     F
2016 2547.150 2001.075 2493.925 1123.450 1876.625 1718.175
2017 2829.025 1808.025 2681.850 2633.425 3005.525 2542.550
2018 1776.175 1538.900 1614.675  845.225 1155.500 1029.325

【问题讨论】:

    标签: r dataframe bar-chart subset


    【解决方案1】:

    我们可以删除第一列,即“年份”并将其更改为行名

    barplot(t(`row.names<-`(as.matrix(Number_Letter_Year_DF[-1]), Number_Letter_Year_DF$Year)), beside=TRUE, 
             xlab="Year", ylab="Number", 
             names.arg=c("2016","2017", "2018"),
             legend= c("A", "B","C","D","E","F"),  args.legend = list(title="Letter", x="topright", cex=.7))
             abline(h=0)
    

    数据

    Number_Letter_Year_DF <- structure(list(Year = 2016:2018, A = c(2547.15, 2829.025, 1776.175
    ), B = c(2001.075, 1808.025, 1538.9), C = c(2493.925, 2681.85, 
    1614.675), D = c(1123.45, 2633.425, 845.225), E = c(1876.625, 
    3005.525, 1155.5), F = c(1718.175, 2542.55, 1029.325)), class = "data.frame", 
    row.names = c(NA, 
    -3L))
    

    【讨论】:

    • 非常感谢!我有 28 个其他变量,我必须转换成这种格式......有没有办法让我摆脱行名而不必单独输入它们各自的值?或者有没有办法让我重组我的所有小组?我用-Variable_Rotation_Year_DF
    • @Phiefs3000。您是否有以Smois_Rotation 开头的对象名称,或者是不同的名称。如果您有 2 个以上的对象,请将其放在一个列表中并使用 lapply 执行一次,即 lst1 &lt;- mget(ls(pattern = "^Smois_Rotation")); lapply(lst1, function(x) {x1 &lt;- as.matrix(x[-1]); row.names(x1) &lt;- x$year; x1})
    • @Phiefs3000 如果这些只是全局环境中的对象,您可能需要更改ls 中的模式,请使用ls()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2018-05-15
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多