用于生成正态分布的多个QQ图的循环

问题描述 投票:1回答:1

我有一个包含多个变量和数百个条目的数据集。数据框是这样的(简单)

> 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)我可以将它们全部保存为单独的图吗?

r normal-distribution
1个回答
0
投票
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()检查。

© www.soinside.com 2019 - 2024. All rights reserved.