r - 用于为正态分布生成多个 QQ 图的循环
问题描述
我有一个包含多个变量和数百个条目的数据集。数据框是这样的(简单)
> my_Data
# A tibble: 9 x 3
Gene Time Expression
<chr> <chr> <dbl>
1 Gene1 W1 18.8
2 Gene2 W1 13.9
3 Gene3 W1 20.9
4 Gene1 W2 9.29
5 Gene2 W2 10.9
6 Gene3 W2 12.2
7 Gene1 W3 13.8
8 Gene2 W3 23.9
9 Gene3 W3 17.4
>
我需要测试每个变量组合的正态分布。我可以使用循环 qqnorm 来做到这一点,它可以完美地工作并生成我需要的图,但是所有图的主标题都是相同的(这里我使用了 main = "myTitle"
),并且在导出后我无法将每个图关联到哪个子集。
这是我的代码
attach(my_Data)
my_qq = list()
for (ids in unique(my_Data$Gene)){
sub_Data = subset(x=my_Data, subset=Gene==ids)
my_qq[[ids]] = qqnorm(sub_Data$Expression, main = "myTitle", pch=19)
qqline(sub_Data$Expression, col="red", lty =2, lwd = 3)
}
1)无论如何,我的每一个情节都有不同的标题吗?2)我可以将它们全部保存为单独的图吗?
解决方案
my_Data <- data.frame(Gene=rep(c("Gene1", "Gene2", "Gene3"), 3),
Time=rep(c("W1", "W2", "W3"), each=3),
Expression=c(18.8, 13.9, 20.9, 9.29, 10.9, 12.2, 13.8, 23.9, 17.4))
for (id in unique(my_Data$Gene)){
sub_Data <- my_Data[which(my_Data$Gene == id), ]$Expression
pdf(paste0(id, ".pdf"))
qqnorm(sub_Data, main=paste("Gene =", id))
qqline(sub_Data, col="red", lty =2, lwd = 3)
dev.off()
}
pdf()
将您的图像保存到当前工作目录中。用getwd()
.
推荐阅读
- python - 如何在导入 keras 时修复“无法导入名称 np_utils”错误
- java - Android项目连接WampServer的IP地址是什么?
- angular - 为什么 ASP.NET Core 不接受以纯文本/文本形式发送 PUT 请求?
- javascript - 如何从 javascript 中的其他类/组件调用方法?
- elasticsearch - 设置 [cluster] 不能为空
- powershell - 从 .zip 文件中提取文件夹
- java - 无法在带有 android studio 3.3 的 mac 上解析 com.android.tools.build:gradle:3.2.1
- numpy - 如何编写一个让 numpy 的 dot() 使用我的 __rmatmul__() 的类?
- javascript - 如何使用 Promise 使递归函数正常工作
- android - 如何以编程方式取消选择 TextInputLayout 的边框