2015-11-20 49 views
0

我有一个data.frame带有二进制(0或1)指示列,如"age_30_35", "age_36_40"等。例如,一个36岁的人将有(age_30_35=0, age_36_40=1)。此外,还有一个参考类别(age_30_35=0, age_36_40=0)。这里有一个例子:“muscle_strength”在R中绘制二元协变量响应

data<- data.frame(c(1,0,0),c(0,1,0),c(2.5,1.3,4.5)) 
colnames(data)=c('age_30_35','age_36_40','muscle_strength') 

我要让每个类别如何影响连续反应变量部分地块例如,每个组的箱形图:参考类别,age_30_35,age_36_40。我知道该怎么做,如果我要制作一个额外的因子列,并且指标1,2,3代表每个组别。在没有实际创造额外因素的情况下,这样做最无痛苦的方式是什么?特别是,我想要一个可以轻松扩展到许多列的解决方案。

+0

能否请您提供一个可重复的例子吗? –

+1

听起来好像您可能想要将数据集“重塑”从广泛到长。如果是这样,那么如果您搜索“r reshape wide to long”,那么这个主题有很多信息。 – aosmith

+0

@aosmith:谢谢你的建议,应该可以。我希望尽快解决,也许作为ggplot的一个选项? –

回答

0

我想你可以通过创建额外的factor

i <- 1:2 #indices of columns with dummies 
f <- factor(
    as.matrix(data[,i]) %*% 1:length(i), 
    labels=c("ref", names(data[,i])) 
) 
boxplot(data$muscle_strength ~ f)