我一直在努力创建一个包含" N1"," NON-N1"按特定顺序分组。我的数据包含名为" A"," N1"," NON-N1"," Comb"的不同群组,我试图展示首先是所有被叫" A"的组,然后是" N1"," NON-N1"按照特定的顺序,最后该组名为" Comb"。我想展示" N1"与(在...之上)" NON-N1"在所有的比较中,但我已经尝试过的一切都失败了。 我也希望使用facet_wrap分离这些组,但似乎该函数不适用于coord_flip()。但这甚至是次要的,因为我甚至无法解决我的第一个问题。我可以重新排序数据框,但ggplot不遵守。请帮我理解如何解决这个问题。谢谢!
library(ggplot2)
df = structure(list(CI1 = c(-3.2, -2, -2.1, -4.4, -2.0, -2.0, -4.4, -2.0, -4.6, -4.6, -0.5, 2.3, 2.0, -2.0, 1.2, 0.01, 2.0), OR = c(-2.2, 2, -2.1, -2.4, 0.04, 0.004, -2.4, 0.26, -2.6, -2.6, 0.24, 2.4, 2.5, 0.02, 1.5, 0.15, 2.4), CI2 = c(4.34247, 5.05772, 4.96875, 5.26578, 1.91331, 1.87162, 3.78027, 4.55967, 4.07937, 4.50965, 3.54538, 3.97742, 3.5491, 2.41067, 2.73239, 2.3767, 3.55664), Label = structure(1:17, .Label = c("N1_A", "NON-N1_A", "N1_B", "NON-N1_B", "N1_C", "NON-N1_C", "N1_D", "NON-N1_H", "N1_H", "NON-N1_D", "N1_E", "NON-N1_E", "N1_F", "NON-N1_F", "N1_G", "NON-N1_G", "Comb"), class = "factor"), group = c("N1", "NON-N1", "N1", "NON-N1", "N1", "NON-N1", "N1", "NON-N1", "N1", "NON-N1", "N1", "NON-N1", "N1", "NON-N1", "A", "A", "Comb")), .Names = c("CI1", "OR", "CI2", "Label", "group"), class = "data.frame", row.names = c(12L, 4L, 8L, 11L, 10L, 13L, 9L, 5L, 6L, 7L, 3L, 2L, 1L, 14L, 17L, 16L, 18L))
# order wanted using the column "Label":
ordered.names = c("N1_G", "NON-N1_G", "N1_C", "NON-N1_C", "N1_F", "NON-N1_F", "N1_A", "NON-N1_A","N1_B", "NON-N1_B","N1_H", "NON-N1_H","N1_D", "NON-N1_D","N1_E", "NON-N1_E", "Comb")
df$group = factor(df$group, levels =c("A", "N1", "NON-N1", "Comb"))
# df <- transform(df, category2 = factor(Label))
df$Label = factor(df$Label, levels=ordered.names)
# df = df[order(df$Label),]
# df$Label <- factor(rev(df$Label), levels=rev(levels(df$Label)))
ggplot(df, aes(x=Label, y=OR, ymin=CI1, ymax=CI2, group=group, color=group)) + geom_pointrange() + coord_flip()
# + facet_wrap(~group, scale="free_x")