【问题标题】:create boxplots of quantiles against binary endpoint针对二进制端点创建分位数箱线图
【发布时间】:2016-09-04 15:25:57
【问题描述】:

我正在尝试用二进制端点(y 轴)绘制数字连续变量(x 轴)的分位数箱线图。

我的输入数据是:

ID  endpoint    var2    var3    var4    var5
1   0   62  3.1 13  10.1
2   1   150 4.1 9   11.1
3   0   18  5.1 0.6 12.1
4   0   60  6.1 3   13.1
5   0   20  7.1 1   14.1
6   1   100 8.1 19  15.1
7   0   56  9.1 2   16.1
8   1   36  10.1    5   17.1
9   0   33.2    11.1    4   18.1
10  1   200 12.1    64  19.1

请帮助在 R 中进行此绘图。

提前致谢。

【问题讨论】:

  • 到目前为止您尝试过什么?您检查过boxplot (?boxplot()) 和quantile (?quantile()) 的帮助功能吗?
  • @bouncyball,我试过 numcolwise。
  • @bouncyball,我试过 numcolwise。 numcolwise(quantile)(mydata, na.rm = T) 此函数计算分位数,但努力将所有变量的值放入绘图(x 轴上的分位数)和 Y 轴上的端点。端点 var3 var4 var5 0 8 0.68 0.3 0 80 1.365 8 0 100 1.89 31 0.5 100 2.755 54 1 300 9.02 78
  • 你想为每个端点的每个连续变量 (var2 - var5) 设置一个框吗?
  • @bouncyball,是的,对于每个连续变量

标签: r boxplot quantile


【解决方案1】:

尝试melt {reshape2},然后使用base R 或ggplot 进行绘图,如下所示:

library(reshape2)
library(ggplot2)

data = read.table(text="ID  endpoint    var2    var3    var4    var5
1   0   62  3.1 13  10.1
           2   1   150 4.1 9   11.1
           3   0   18  5.1 0.6 12.1
           4   0   60  6.1 3   13.1
           5   0   20  7.1 1   14.1
           6   1   100 8.1 19  15.1
           7   0   56  9.1 2   16.1
           8   1   36  10.1    5   17.1
           9   0   33.2    11.1    4   18.1
           10  1   200 12.1    64  19.1",header=TRUE)
head(data)

# Melt data
data.melt = melt(data[,2:6],id='endpoint')
head(data.melt)

# Boxplot with base
boxplot(value~endpoint*variable, data=data.melt, col=(c("red","green",'blue'))) 

# Boxplot with ggplot
ggplot(data.melt, aes(x=as.factor(endpoint), y=value, fill=variable)) + geom_boxplot()

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多