Boxplox数据框

时间:2017-09-27 11:42:02

标签: r boxplot

我有一个这样的数据框:

2015 | 2016 | 2017 
-----+------+------
1.2  |  5.2 | 5.6
9.1  |  3.7 | 4.3
.../...

我想在每年的情况下绘制列的值。

我找到的唯一方法是手动将数据框(从CSV文件导入)更改为:

Year | Value
-----+-------
2015 | 1.2
...  | ...
2016 | 5.2
...  | ...
2017 | 5.6
...  | ...

并使用(如果CPV是我的数据框的名称):

ggplot(CPV, aes(x=factor(Year), y=Time)) + geom_boxplot()

第一个问题:我可以用第一种形式的数据框获得相同的结果吗?

第二个问题:如果我有一个“价值”栏,我可以拥有相同的情节,并且每年都有这个值的出现次数:

Value | 2015 | 2016 | ...
------+------+------+---
1     |    0 |    5 | ...
1.1   |    4 |    1 | ...

ANSWER

  1. 使用表格的第二种形式作为方框图。

  2. 要转到此表单,请使用melt包中的data.table函数。

1 个答案:

答案 0 :(得分:1)

df <- data.frame("2015" = c(1.2, 9.2),
             "2016" = c(5.2, 3.7),
             "2017" = c(5.6, 4.3))
names(df2) <- c("Year", "Value")             # new
# setnames(df, as.character(c(2015:2017)))   # old

reshape2将对数据框进行转换:

library(reshape2)
df2 <- melt(df)
setnames(df2, c("Year", "Value"))
df2

然后你可以像以前一样生成箱形图:

ggplot(df2, aes(x = factor(Year), y = Value)) + geom_boxplot()