【问题标题】:drawing multiple boxplots from imputed data in R从R中的推算数据绘制多个箱线图
【发布时间】:2014-02-21 00:49:00
【问题描述】:

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

我的数据(一个样本,原始每个插补有 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 个观测值。例如,使用方差分析,我需要将方差分析结果平均 5 以返回 20 个观察值。但这是否也需要用于箱线图,因为我只处理中位数、均值、最大值。和分钟?

如:

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

我玩过几次 ggplot,但我认为自己是个新手。

【问题讨论】:

    标签: r boxplot ggplot2


    【解决方案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,你可以例如对类型进行分面(或者你可以在data_melt上使用一个简单的过滤器语句来限制一个类型):

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

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

    【讨论】:

    • 谢谢,这看起来很不错!但是,我可以只包括来自插补的所有数据吗?进行编辑以阐述我的观点
    • 上面指定的箱线图将所有数据点聚集在一起(即对于任何 .imp x .id 组合都有一个值)。如果您指的是允许包含正确性的统计程序,我无法帮助您 - 如果您只想显示一个子集(即.imp==1),那么过滤 data_melt 就可以了。
    • 为什么图上有点,我也有。我好像找不到他们...
    • 没关系。异常值。 RTFM :/ 我在 Cross Validated 上重写了我的问题,因为它确实是一个统计问题。感谢 R 的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 2016-02-05
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    相关资源
    最近更新 更多