【问题标题】:Barplots with percentages of different variables具有不同变量百分比的条形图
【发布时间】:2013-02-26 16:26:36
【问题描述】:

举个例子:

structure(list(jdgcbrbR = c(0L, 1L, 1L, 1L, 1L, 0L, 0L, 0L), 
    ctprpwrR = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L), hrshsntaR = c(0L, 
    0L, 1L, 0L, 0L, 0L, 0L, 0L), dbctvrdR = c(0L, 0L, 1L, 1L, 
    0L, 0L, 0L, 0L), lwstrobR = c(0L, 0L, 1L, 0L, 0L, 0L, 0L, 
    0L), rgbrklwR = c(0L, 0L, 1L, 1L, 0L, 0L, 0L, 0L), ctinpltR = c(0L, 
    0L, 1L, 1L, 0L, 0L, 0L, 0L), stcbg2tR = c(0L, 0L, 0L, 0L, 
    0L, 0L, 0L, 0L), tmprsR = c(NA, NA, NA, 0L, 0L, NA, NA, NA
    ), caplcstR = c(0L, 0L, 1L, 0L, 1L, 0L, 0L, 0L), widprsnR = c(0L, 
    0L, 1L, 0L, 0L, 0L, 0L, 0L), wevdctR = c(0L, 0L, 1L, 0L, 
    0L, 0L, 0L, 0L)), .Names = c("jdgcbrbR", "ctprpwrR", "hrshsntaR", 
"dbctvrdR", "lwstrobR", "rgbrklwR", "ctinpltR", "stcbg2tR", "tmprsR", 
"caplcstR", "widprsnR", "wevdctR"), row.names = 747:754, class = "data.frame")

我如何创建一组barplots,绘制每个变量中1-values 的百分比,从而很好地概述1 百分比的演变。

到目前为止,我尝试创建百分比(失败,因为 nrow 被视为 NULL):

pct_jdgcbrbR <- (sum(jdgcbrbR) / nrow(jdgcbrbR) * 100)
pct_jdgcbrbR

我发现了可能有用的 barplot 函数:

barplot(percentages, main="INR", 
        xlab="varnames")

结果应该类似于我在 Excel 中制作的这个示例:

【问题讨论】:

    标签: r graph plot


    【解决方案1】:

    假设您的 data.frame 被称为“temp”,以下对我有用:

    barplot((colSums(temp, na.rm=TRUE)/nrow(temp))*100)
    

    【讨论】:

    • 谢谢,它有效。如果我只想要图中的最后 5 个变量,我可以添加一个参数吗?
    • @kwanti,当然。您可以只使用基本子集。例如,要仅绘制第一个、第三个和第七个变量,您可以使用 temp[c(1, 3, 7)] 之类的东西,而不仅仅是 temp
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 2017-11-29
    相关资源
    最近更新 更多