0

我一直在遵循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

我想要一个好方法

a) 按细菌门为每​​个环境绘制时间。我意识到这意味着我需要为每个门创建一个图。(见地块

湾。按两个不同门的环境绘制时间,然后我将按环境对它们进行颜色编码。(见地块

我知道我可以根据环境和细菌创建一个新的数据框,但是我无法将它正确地合并到使用第三个变量(时间)的图中。

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

但即使它确实绘制了,它仍然没有考虑 Time 变量。我真正想弄清楚的是如何在情节中使用三个变量。

4

1 回答 1

2

假设门是一个因子变量

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

在此处输入图像描述

 library(ggplot2)

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

在此处输入图像描述

详情请看这里

于 2013-10-12T22:58:32.473 回答