写入foreach%dopar%循环中的文件
我有这个代码,我想使并行,但我似乎无法让它工作。 其思想是,对于每个值chr,snp_sel(geno_data,k,bl)返回一个由k列组成的矩阵,这些列随后逐个写入一个文件。 如何%dopar%此循环写入foreach%dopar%循环中的文件,r,doparallel,parallel-foreach,R,Doparallel,Parallel Foreach,我有这个代码,我想使并行,但我似乎无法让它工作。 其思想是,对于每个值chr,snp_sel(geno_data,k,bl)返回一个由k列组成的矩阵,这些列随后逐个写入一个文件。 如何%dopar%此循环 foreach(chr=1:length(chrs_raw)) %dopar% { start = Sys.time() print(start) print(chr) # get .raw file name + path rawfile
foreach(chr=1:length(chrs_raw)) %dopar%
{
start = Sys.time()
print(start)
print(chr)
# get .raw file name + path
rawfile = paste(RAWfolder, chrs_raw[chr],sep="/")
# get .bim file name + path
bimfile = paste(RAWfolder, chrs_bim[chr],sep="/")
# Read in genetype data in raw format
geno_data = fread(rawfile, data.table=FALSE, showProgress = FALSE)
# Remove first 7 columns
geno_data = as.matrix(geno_data[,c(7:ncol(geno_data))])
# Apply LD subsetting function Lubke et al 2012
LDsubset = snp_sel(geno_data,k, bl)
rm(geno_data)
snp_data = fread(bimfile, data.table=FALSE, showProgress = FALSE)
for(subsets in 1:ncol(LDsubset))
{
dataout = snp_data[LDsubset[,subsets][LDsubset[,subsets] != 0],2]
outfile = paste(gsub(".bim","",basename(chrs_bim[chr])), "S",subsets, sep="")
pathout = paste("folderOut/Data/Subsets/",outfile, sep="")
write.table(dataout, pathout, col.names=FALSE, row.names=F)
}
rm(snp_data); rm(LDsubset)
stop = Sys.time()
print(stop-start)
}
该行:
pathout = paste(folderOut/Data/Subsets/",outfile, sep="")
缺少开头的双引号。应该是:
pathout = paste("folderOut/Data/Subsets/", outfile, sep="")
我不确定这是否能完全解决您的问题,但这应该会有所帮助。很抱歉,这是一个输入错误,我现在更改了,谢谢!:)当你运行代码时会发生什么?有趣的事情发生了,它在没有修改任何东西的情况下工作仍然不知道为什么感谢你考虑帮助我