我有一个这样的数据框:
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
使用表格的第二种形式作为方框图。
要转到此表单,请使用melt
包中的data.table
函数。
答案 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()