2013-07-11 59 views
0

所以,我有兩組數據(不同長度的),我試圖組向上和用於顯示所述密度圖:只有兩種密度中的一個被示出在GGPLOT2

dat <- data.frame(dens = c(nEXP,nCNT),lines = rep(c("Exp","Cont"))) 
ggplot(dat, aes(x = dens, group=lines, fill = lines)) + geom_density(alpha = .5) 

當我運行的代碼它吐出錯誤有關不同的長度,即 「的參數意味着行的不同NUM:X,Y」

我那麼代碼擴充到:

dat <- data.frame(dens = c(nEXP,nCNT),lines = rep(c("Exp","Cont"),X)) 

其中X是的較長一個的長度因此「線」的長度將與窩點的長度相匹配。

現在的問題是,當我去繪製數據時,我只能得到一個密度圖......我知道應該有兩個,因爲用密度/線繪製密度顯然是兩個不相等的重疊的分佈,所以我假設錯誤是與分組...

希望是有道理的。

+1

'c()'函數將這兩個向量合併爲一個向量。改用'list()'來代替。我也認爲rep()調用可能是錯誤的,您需要使用'each'參數。 (但是這可能與列表結構不兼容,所以你應該做的就是發佈一個工作示例。 –

回答

1

所以我不知道爲什麼,但基本上我只是不得不做手工的代表()函數:

A<-data.frame(ExpN, key = "exp") 
B<-data.frame(ConN,key = "con") 
colnames(A) <- c("a","key") 
colnames(B) <- c("a","key") 
dat <- rbind(A,B) 
ggplot(dat, aes(x = dens, fill = key)) + geom_density(alpha = .5) 
0

你需要告訴rep多少次重複每個元素讓它排隊

dat <- data.frame(dens = c(nEXP,nCNT), 
        lines = rep(c("Exp","Cont"), c(length(nEXP),length(nCNT))) 

這應該給你一個dat你可以用你的ggplot調用。