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