2015-11-20 73 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)