从R中的插补数据中绘制多个箱图

时间:2014-01-29 08:48:22

标签: r boxplot ggplot2

我有一个我正在分析的估算数据集,我正在尝试绘制箱形图,但我无法绕过正确的程序。

我的数据(一个样本,原始每个插补有20个观察值,每组有13个变量,所有值都在0到25之间):

.imp  .id   FTE_RM  FTE_PD  OMZ_RM  OMZ_PD
1     1     25      25      24      24
1     2     4       0       2       6
1     3     11      5       3       2
1     4     12      3       3       3
2     1     20      15      15      15
2     2     4       1       2       3
2     3     0       0       0       6
2     4     20      0       0       0

.imp表示每个观察点的归集,.id

我想在一个图中绘制所有FTE_*变量(和另一个中的'OMZ_ *),但是想知道如何处理所有的插补,我可以只包括所有值吗?现在,估算的数据有500个观测值。例如,使用ANOVA,我需要将ANOVA结果平均5,以回到20个观察值。但是这也需要一个箱形图,因为我只处理中位数,手段,最大值。和分钟?

如:

data_melt <- melt(df[grep("^FTE_", colnames(df))])
ggplot(data_melt, aes(x=variable, y=value))+geom_boxplot()

我和ggplot玩了几次,但认为自己是一个完整的新手。

1 个答案:

答案 0 :(得分:1)

我假设你想在熔化之后保留.imp和.id的标识符,而不是把它放在:

data_melt <- melt(df,c(".imp",".id"))

为了完整的数据帧,可能有助于引入一个标识类型的列 - FTE与OMZ:

data_melt$type <- ifelse(grepl("FTE",data_melt$variable),"FTE","OMZ")

拥有这个data.frame,你可以,例如,在类型上的facet(或者你可以在data_melt上使用一个简单的过滤器语句来限制一种类型):

ggplot(data_melt, aes(x=variable, y=value))+geom_boxplot()+facet_wrap(~type,scales="free_x")

这看起来像这样。 编辑:修复数据搞乱

enter image description here