2013-10-12 59 views
0

我一直在遵循Little Book of R中的分析步驟。這是一個很好的教程,但要運行的東西,它和許多其他教程需要以某種方式組織數據。用3個變量在R中創建圖

我的數據結構是這樣的(一個很小很小的樣本)A:

Phylum Confidence Time Seq_ID Environment Dataset 
Acidobacteria 0.801 5 >3134898 Marine 4440037.3 
Bacteroidetes 0.812 6 >3066473 Marine 4440037.3 
Acidobacteria 0.828 5 >3085551 Gut 4440038.3 
Firmicutes 0.830 4 >3087676 Coral 4440036.3 

我想一個好辦法,

一)陰謀爲每個環境細菌門的時間。我意識到這意味着我需要爲每個門創建一個情節。 (見plots

b。通過兩個不同門的環境繪製時間,然後我將通過環境對顏色進行編碼。 (請參閱plots

我知道我可以基於環境和細菌創建新的數據框,但我無法將它正確地合併到使用第三個變量(時間)的繪圖中。

new_df = myDF[(myDF$Environment=='Marine') & (myDF$Phylum=='Acidobacteria'),] 

我已經試過幾件事情......

p <- ggplot(myDF, aes(Environment, Time)) 
p + geom_boxplot(aes(fill = Environment)) 

它創建了一個情節,但這並不考慮到門(例如,我想每個門獨立的情節)。

或者這...

for (i in environment) #this is a list I created 
{ 
    for (j in phyla) #this is a list I created 
    { 
     #stats_df = myDF[(myDF$Environment==i) & (myDF$Phylum==j),] 
     plot(myDF[[j]], myDF[[i]], xlab=NULL, ylab='Time') 
     } 
} 

這一個得到錯誤

Warning in min(x) : no non-missing arguments to min; returning Inf 
Warning in max(x) : no non-missing arguments to max; returning -Inf 
Warning in min(x) : no non-missing arguments to min; returning Inf 
Warning in max(x) : no non-missing arguments to max; returning -Inf 
Error in plot.window(...) : need finite 'xlim' values 
Calls: plot -> plot.default -> localWindow -> plot.window 
Execution halted 

shell returned 1 

但即使它沒有情節,它仍然不考慮時間變量。我真正想弄明白的是如何在劇情中使用三個變量。

+0

您能否澄清一下您的數據集的結構以及您希望生成的圖。在第二個圖中,似乎是門的名字(sensu第二個數據集)顯示爲數值變量。第一個數據集(Phylum)中的第一個變量的值與第二個數據集中的'Environment'變量相似。 – Henrik

+0

肯定亨裏克。我清理了這個帖子。 – cer

+0

你能告訴我們你試過的密碼嗎? [詢問代碼的問題應該包括嘗試解決方案,爲什麼他們不工作,以及預期的結果](http://stackoverflow.com/help/on-topic)。謝謝。 – Henrik

回答

2

假設門是可變的

library(ggplot2) 
g<- ggplot(myDF, aes(Environment, Time)) 
g + geom_point() + facet_grid(. ~ phylum) 

enter image description here

library(ggplot2) 

g<- ggplot(df1, aes(Environment, Time)) 
g + geom_point() + facet_grid(phylum ~ .) 

enter image description here

請參閱here對細節的一個因素。

+0

謝謝,這讓我更加接近。我正在處理〜40個不同的門和20個環境。這種方法將會形成一個緊湊的情節。我會繼續閱讀,不過謝謝你。 – cer

+0

如果你想找什麼,你能接受這個答案嗎? – Metrics

+0

您的回覆 - 雖然有用(謝謝)並不完全符合我的要求(請參閱地塊鏈接)。我仍然在與其他方法搏鬥。如果最終,你的迴應做到了我所需要的(有些修補),我會爭取到那個大的複選標記,然後把它放在桌子上,就像是一張多米諾骨牌。 – cer