Я пытаюсь создать два графика, где ось X обоих будет именем файла (см. Небольшой пример организации данных ниже).
Для отдельного имени файла будет несколько вхождений определенного типа - каждое с другим значением 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 указано, сколько раз каждый тип встречается для каждого имени файла (например, w/Acidobacteria = 2 для имени файла 4461145.3).
График 2: ось x — это экземпляры имени файла. ось ординат — это среднее значение M1 для каждого типа, которое встречается для каждого имени файла (например, с ацидобактериями (n = 2), mean_M1 = 55,74 для имени файла 4461145.3).
Точки на графике должны быть окрашены по типу, и для каждого имени файла сумма и среднее значение для каждого типа должны быть на вертикальной линии. В приведенном примере есть только одно название Phylum, что делает запрос немного тривиальным, но в моем наборе данных более 30 уникальных Phylum.
Я могу построить необработанные значения M1 для каждого типа (они тоже правильно окрашиваются) по имени файла, но я не могу понять номенклатуру для получения суммы и средних значений M1. Я пытался использовать lapply, но не могу понять, как включить его в ggplot.
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))
Изображения попыток можно увидеть здесь: http://imgur.com/srmR1rO Первая идея примерно правильная , но вместо того, чтобы иметь все значения M1, я хотел бы получить среднее значение. Я не пытался решить задачу суммирования.
Помощь высоко ценится.