使用多列因子的R盒图

使用多列因子的R盒图,r,boxplot,reshape2,R,Boxplot,Reshape2,我试图用R盒图来显示我的数据,结果卡住了。我的数据如下: id var.1 var.2 ... var.n value a 0 1 ... 2 1.7 b 2 1 ... 0 1.4 ... ... ... ... ... ... a 1 2 ... 2 5.3 b 1 2 ... 1 2.4 现在,我想要一系列箱线图:value~var.1,value~var.2,…

我试图用R盒图来显示我的数据,结果卡住了。我的数据如下:

id  var.1 var.2 ... var.n value
a   0     1     ... 2     1.7
b   2     1     ... 0     1.4
... ...   ...   ... ...   ...
a   1     2     ... 2     5.3
b   1     2     ... 1     2.4
现在,我想要一系列箱线图:value~var.1,value~var.2,…,value~var.n 最好是ggplot2刻面类型图。我尝试使用熔化、重塑和分裂的方法都失败了——如果有人能给我一个提示,我将不胜感激

我想重塑后的数据应采用以下形式:

a var.1 0 1.7
a var.2 1 1.7
...
b var.1 2 1.4
b var.2 1 1.4
...
所以我可以看看第2列和第3列的交互作用

数据

set.seed(1)
dat <- do.call(cbind.data.frame, rep(list(gl(3, 10)), 5))
names(dat) <- paste("var", 1:5, sep = ".")
dat$value <- rnorm(30)
head(dat)
#   var.1 var.2 var.3 var.4 var.5      value
# 1     1     1     1     1     1 -0.6264538
# 2     1     1     1     1     1  0.1836433
# 3     1     1     1     1     1 -0.8356286
# 4     1     1     1     1     1  1.5952808
# 5     1     1     1     1     1  0.3295078
# 6     1     1     1     1     1 -0.8204684
现在,您可以通过
ggplot2
进行
箱线图(值~x)

library(ggplot2)
ggplot(datm, aes(x = x, y = value)) + geom_boxplot() + facet_wrap(~i)


这回答了你的问题吗

也可以使用熔化功能:

library(reshape2)
melt(dat, id='value')
          value variable value
1   -0.11978146    var.1     1
2   -0.78996525    var.1     1
3    0.54246428    var.1     1
4    0.09325227    var.1     1
5    0.63954407    var.1     1
6    1.48611802    var.1     1
...

我把这两个答案结合起来,是的,它现在起作用了!我们需要更多地玩游戏。对大师有用的东西。谢谢!将两个答案组合成一个简单有效的解决方案!
library(reshape2)
melt(dat, id='value')
          value variable value
1   -0.11978146    var.1     1
2   -0.78996525    var.1     1
3    0.54246428    var.1     1
4    0.09325227    var.1     1
5    0.63954407    var.1     1
6    1.48611802    var.1     1
...