对不起,我在帖子标题中不是特别清楚..我希望我的例子会更清楚!
如果我从一个数据框开始:
test.df <- data.frame(group=c(rep("a",4), rep("b",4)),
var=rep(1:4,2),
min= runif(8),
q25=runif(8,1,2),
q75=runif(8,2,3),
max=runif(8,3,4))
head(test.df,2)
group var min q25 q75 max
1 a 1 0.59078504 1.199138 2.119283 3.869486
2 a 2 0.06131107 1.676109 2.603068 3.739955
我知道可以用 id=c(group, var) 融化它
library(reshape2)
head(melt(test.df, id=c("group", "var")),2)
group var variable value
1 a 1 min 0.59078504
2 a 2 min 0.06131107
但我正在寻找的是一种通过配对 min-max 和 q25-q75 来获得两个“值”列的方法,它看起来像:
group var variable value1 value2
1 a 1 min-max 0.59078504 3.869486
1 a 1 q25-q75 1.199138 2.119283
2 a 2 min-max 0.06131107 3.739955
2 a 2 q25-q75 1.676109 2.603068
我有点卡在融化/铸造上,不能把自己拉出来,我敢肯定一定有一个巧妙的方法来完成这个?
编辑:这是一个简化的例子,只有两对变量 - 想法是用最少的“手动”工作解决大量对的问题。