在列中排序值并绘制有序值

时间:2015-11-22 18:07:01

标签: r ggplot2

如何在第二列中订购数字,以便最低值出现?请查看我的示例数据和我的代码。

> TumorSize
   Tumour.size
1           15
2         12,5
3           10
4            4
5            8
6            9
7           12
8            7
9            5
10           2
11         4,5
12           8
13          12

试过这个,但它不适用于10以上的值:

TumorSize$Tumour.size <- with(TumorSize, TumorSize[order(Tumour.size), 1])

ggplot(TumorSize, aes(Tumour.size)) + geom_dotplot() + theme_bw() +
  labs(x="Tumor Size", y="Frequency") +
  theme(axis.text.x = element_text( angle = 90))

1 个答案:

答案 0 :(得分:2)

你必须清理你的价值观:

dta <- read.table(textConnection("Tumour.size
                            1           15
                            2         12,5
                            3           10
                            4            4
                            5            8
                            6            9
                            7           12
                            8            7
                            9            5
                            10           2
                            11         4,5
                            12           8
                            13          12"),
              header=TRUE)

# to num accounting for ,
dta$Tumour.size <- as.numeric(sub(",",".",dta$Tumour.size))

然后,您可以对数据进行传送排序,例如下面使用dplyr的语法:

require(dplyr)
dta_ord <- arrange(dta, Tumour.size)

关于图表,如果整理你的值,你实际上不必传递已排序的数据框:

require(ggplot2)
ggplot(dta, aes(Tumour.size)) + geom_dotplot() + theme_bw() +
    labs(x="Tumor Size", y="Frequency") +
    theme(axis.text.x = element_text( angle = 90))

会给你以下图表:

sample chart