R 中的绘图 - 结合因素

Graphing in R - combining factors

这是一个有点奇怪的请求,我不知道某个功能是否必然存在,但我希望可能存在。基本上,我正在查看许多变量以得出结果,因此我的典型数据如下所示

Sample   Daylength  Expt   Line    Protein

1            LD      L      K        100
2            SD      S      R        150
3            LD      L      R        200
4            SD      S      K        120
5            LD      L      K        95
6            SD      S      R        160
7            LD      L      R        195
8            SD      S      K        130

所以我有 3 个因变量(日长、expt、线)和 1 个蛋白质结果变量。然而,我想在图表中看到的是比较显示 L 和 S 实验条形图的蛋白质水平

我将使用 ggplot2 绘制条形图的代码示例是:

ggplot(data=results, aes(x=daylength, y=protein, fill=line)) + geom_bar(stat="identity", position=position_dodge())

这会给我一张图表,显示 LD 和 SD 实验的结果,其中的线提供单独的系列。然而,这并没有考虑我的第三个因素,expt.

通常在 Excel 中,我可以操纵 table 来给出 LD/L、LD/S、SD/L 和 [=27= 的结果] 作为单独的标题并使用它们作为 X 因子创建图表,但是这可能很困难,尤其是如果我要重写 table,保存它并每次在 R 中 运行 .我正在寻找是否有一种足够简单的方法来操作 R 中的 table 以使用一些命令将所有内容分组如下,或者每次都将这两个因素结合起来直接绘制图形,特别是因为在某些情况下我可能对结合不同的因素感兴趣。

Sample   Daylength/Expt   Line    Protein

1            LD/L          K        100
2            SD/S          R        150
3            LD/L          R        200
4            SD/S          K        120
5            LD/L          K        95
6            SD/S          R        160
7            LD/L          R        195
8            SD/S          K        130

您可以使用粘贴创建 Daylength/Expt 列:

dl_ex <- paste(results$Daylength, results$Expt, sep='/')

(如果 R 抱怨因子或给出奇怪的数字结果,请在列上使用 as.character

然后将其添加到数据集

results2 <- results[, -c("Daylength", "Expt")]
results2$DE <- dl_ex

但是,如果您想按某些属性对数据进行分组,如果您熟悉 SQL 语法,则应该查看 R 的包 plyr 或 sqldf。

您可以在以下因素上使用交互运算符 :

library(ggplot2)
head(CO2) # using builtin data
#  Plant   Type  Treatment conc uptake
#1   Qn1 Quebec nonchilled   95   16.0
#2   Qn1 Quebec nonchilled  175   30.4
#3   Qn1 Quebec nonchilled  250   34.8
#4   Qn1 Quebec nonchilled  350   37.2
#5   Qn1 Quebec nonchilled  500   35.3
#6   Qn1 Quebec nonchilled  675   39.2
qplot(conc, uptake, color=Type:Treatment, data=CO2)