我无法让R按字母顺序排列我的分档数据

时间:2016-03-29 15:41:44

标签: r bar-chart

我试图制作条形图以供发布,我试图在课程实施之前和之后显示在我们医院执行的手术类型的变化,&#34; BR&#34;和&#34; AR&#34;分别。操作类型是&#34; Open&#34;,&#34; Laparoscopic&#34;和&#34; Robotic&#34;。我想要&#34; BR&#34;价值来自&#34; AR&#34;我的条形图上的值,但我似乎无法弄清楚如何让R按顺序读取它们(我对R和编码很新:()。我的数据框命名为df < / p>

           bin type cases_per_month
1         Open   BR           18.35
2         Open   AR           15.50
3 Laparoscopic   BR            4.25
4 Laparoscopic   AR            1.95
5      Robotic   BR            0.10
6      Robotic   AR            1.15

ggplot(data=df, aes(x=bin, y=cases_per_month)) + geom_bar(stat="identity")

data <- tapply(df$cases_per_month, list(df$type, df$bin), sum)
barplot(data, beside=T, col=c("black", "grey"),
    main="Average Cases per Month,BR and AR: Ventral", 
    xlab="Case Type", ylab="Average Cases per Month")
legend(locator(1), rownames(data), fill=c("black","grey"))

因为R读取&#34; BR&#34;和&#34; AR&#34;作为原子矢量,我试过的大多数命令都不允许我按照我想要的方式重新排序

enter image description here

这就是我现在所得到的。我也希望我的y轴达到20,但我只需要google,我确定

2 个答案:

答案 0 :(得分:3)

来吧。你只需要这个。

data <- data[2:1, ]

您的图是由barplot包中的graphics函数而不是ggplot2包创建的。 ggplot行在您的脚本中没用。

对于y axis问题,请使用ylim参数。

barplot(data,beside=T,col=c("black","grey"), 
        main="Average Cases per Month,BR and AR: Ventral",
        xlab="Case Type",ylab="Average Cases per Month", ylim=c(0,20))

答案 1 :(得分:0)

这个有点棘手。这是我的解决方案:

# Load ggplot
library(ggplot2)

# Create data frame
bin <- c('Open', 'Open', 'Laparoscopic', 'Laparoscopic', 'Robotic', 'Robotic')
type <- c('BR', 'AR', 'BR', 'AR', 'BR', 'AR')
cases.per.month <- c(18.35, 15.5, 4.25, 1.95, .1, 1.15)
df <- data.frame(bin, type, cases.per.month)

# Reorder levels
df$type <- factor(df$type, c('BR', 'AR'))

# Plot BR and AR types side-by-side
ggplot(df, aes(x = bin, y = cases.per.month, fill = type)) + geom_bar(stat = 'identity', position = 'dodge')

另外,欢迎来到R!