2013-10-12 3 views
0

Я выполнял шаги анализа в Little Book of R. Это отличный учебник, но для того, чтобы работать, он и многие другие учебники должны иметь определенные данные.Создание графиков в R с 3 переменными

Мои данные структурированы, как это (очень маленькие крошечный образец) а:

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) имеет значения, которые выглядят как переменная «Окружающая среда» во втором наборе данных. – 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 различными phyla и 20 средами. Такой подход сделает облегающий сюжет. Я буду продолжать читать, но спасибо вам независимо. – cer

+0

Не могли бы вы принять это как ответ, если он сделает то, что вы ищете? – Metrics

+0

Ваш ответ - хотя полезно (спасибо) не совсем делает то, что я хочу (см. Ссылки на сюжеты). Я все еще борюсь с другими подходами.Если, в конце концов, ваш ответ сделает то, что мне нужно (с некоторым изменением), что я буду гоняться на эту большую галочку и шлепнуть его на стол, как будто это домино. – cer

Смежные вопросы