2013-12-18 2 views
1

둘 다 x 축이 파일 이름이되는 두 그래프를 만들려고합니다 (아래 데이터 구성 예제 참조).ggplot 합계 및 변수 방법

개별 파일 이름의 경우 각 M1 값이 다른 특정 문구가 여러 번 나타납니다.

Phylum  M1 Filename 
Acidobacteria 55.75 4461130.3 
Acidobacteria 57.08 4461130.3 
Acidobacteria 54.61 4461125.3 
Acidobacteria 53.49 4461145.3 
Acidobacteria 57.99 4461145.3 
Acidobacteria 53.05 4461161.3 
Acidobacteria 51.03 4461161.3 
Acidobacteria 50.20 4461227.3 
Acidobacteria 51.88 4461227.3 

플롯 1 : x 축은 파일 이름 인스턴스입니다. y 축은 각 파일 이름에 대해 각 문이 발생하는 횟수입니다 (예 : 파일 이름 4461145.3의 경우 Acidobacteria = 2).

플롯 2 : x 축은 파일 이름 인스턴스입니다. y 축은 각 파일 이름 (예 : Acidobacteria (n = 2), 파일 이름 4461145.3의 경우 mean_M1 = 55.74)에 대해 발생하는 각 문에 대한 M1의 평균값입니다.

그래프의 점은 문에 의해 색칠되어야하고 각 파일 이름에 대해 각 문안의 합계와 평균값은 수직선이어야합니다. 주어진 예를 들어, 요청을 약간 사소하게 만드는 하나의 Phylum 이름 만 있지만, 내 데이터 세트에 30 개 이상의 고유 한 Phylum이 있습니다.

각 문에 대한 M1의 원시 값을 파일 이름별로 플롯 할 수 있지만 M1의 평균값과 평균값을 얻는 명명법을 알 수는 없습니다. 나는 lapply를 사용하려고했지만 ggplot에 그것을 통합하는 방법을 알 수 없습니다. http://imgur.com/srmR1rO 첫 번째 대략 올바른 생각, 대신 M1의 모든 값을 갖는, 나는 평균을 싶습니다 시도

FN = env.txt 
myDF = read.csv(FN, header=TRUE, sep=' ') 

f <- qplot(Filename, M1, data=myDF) 
f + geom_point(aes(colour=factor(Phylum))) + theme(axis.text.x=element_text(angle=90, hjust=1)) 

e <- qplot(Filename, mean(M1), data=myDF) 
e + geom_point(aes(colour=factor(Phylum))) + theme(axis.text.x=element_text(angle=90, hjust=1)) 

g <- ggplot(myDF, aes(Filename, M1)) 
g + geom_point(aes(colour=factor(Phylum))) + theme(axis.text.x=element_text(angle=90, hjust=1)) 

p <- ggplot(myDF, aes(Filename, mean(M1))) 
p + geom_point() + facet_grid(. ~ Phylum) + theme(axis.text.x=element_text(angle=90, hjust=1)) 

q <- qplot(Filename, M1, data=myDF, fun.y='mean') 
q + geom_point() + facet_grid(. ~ Phylum) + theme(axis.text.x=element_text(angle=90, hjust=1)) 

이미지는 여기에서 볼 수 있습니다. 나는 합계 문제를 시도하지 않았다.

도움을 크게 주시면 감사하겠습니다.

답변

3

myDF.agg이라는 M1 수단과 합계를 사용하여 plyr을 사용하여 데이터 프레임을 만드는 것이 어떨까요?

library(plyr) 
FN = env.txt 
myDF = read.csv(FN, header=TRUE, sep=' ') 
myDF.agg = ddply(myDF, .(Filename, Phylum), summarize, mean_M1 = mean(M1), sum_M1 = sum(M1)) 
e.mean <- qplot(Filename, mean_M1, data=myDF.agg) 
e.mean + geom_point(aes(colour=factor(Phylum))) + theme(axis.text.x=element_text(angle=90,  hjust=1)) 

e.sum <- qplot(Filename, sum_M1, data=myDF.agg) 
e.sum + geom_point(aes(colour=factor(Phylum))) + theme(axis.text.x=element_text(angle=90,  hjust=1)) 
+0

완벽 @ user2840385, 감사합니다. – cer