r - 如何将 for 循环中生成的数据组合成一个散点图?
问题描述
我有这段代码可以计算文件(对象gts
)中某些命名标记的 p 值。trait
for 循环为中定义的每个生成散点图pts
。
pts <- read.csv('data_rqtl_phenotypes.csv',as.is=T)
gts <- read.csv('data_rqtl_genotypes.csv',as.is=T)
gts <- gts[,c(1,grep('2B',gts[1,]))]### use only 1B
gts <- gts[,!apply(gts[2,],1,duplicated)]### remove duplicated
dim(gts)### 93 229
map <- gts[1:2,]### salvage map
gts <- gts[-c(1:2),]
gts[gts=='-'] <- NA
testdfr <- merge(pts,gts,by='id')
testdfr[1:5,1:10]
pdf('SingleMarkerAnalysis_ParW471_2021_10_21.pdf')
for( trait in colnames(pts)[-1])
{
print(trait)
pValueL <- c()
for(marker in colnames(gts))
{
model <- try(lm(testdfr[,trait]~testdfr[,marker]))
{
if(any("try-error"%in%class(model)))
print('not enough data for a test')
else
{
modelsum <- summary(model)
coeffs <- modelsum$coefficient
print(coeffs)
pValue=coeffs[grep('[AB]$',row.names(coeffs)),grep('Pr',colnames(coeffs))]
print(pValue)
if(length(pValue)>0)
pValueL[marker] <- pValue
}
}
}
plot.default(map[2,names(pValueL)],-sapply(pValueL,log10),main=trait,xlab='Chr 1B [cM]', ylab='-log10(pValue)',ylim=c(0,7))
}
dev.off()
但是,我想获取每次迭代产生的数据,然后将其绘制在同一个散点图上,这样我就可以对每个数据进行着色,并查看它们在相互叠加时的比较情况。我不确定如何让循环将每次迭代输出到一个新对象,以便将它们绘制在一起。如果有人知道如何做到这一点,将不胜感激!
解决方案
推荐阅读
- javascript - 如何显示选中复选框的标签而不是其值
- java - 用 exec.mainClass 覆盖 exec-maven-plugin
- javascript - Express js/Handlebars 新手 - 使用 res.locals.currentPost 仅在某些情况下有效,无法弄清楚原因
- laravel - Laravel - 如何在文件夹应用程序内但在文件夹 http 之外创建控制器
- command - Discord.py mod 日志设置
- c++ - 寻找产生最大功能输出的输入的快速 STL 方法?(连续整数输入)
- javascript - Gatsby 静态路径无法解析
- video - 这个YUV420视频怎么会有尺寸不均匀的
- google-cloud-platform - 如何为使用 GKE 部署的应用程序添加 HTTPS 负载平衡器
- performance - 使用 OpenMP 在 Fortran 中并行化分支递归子例程时线程创建失败