записать в файл в цикле foreach% dopar%

У меня есть этот код, который я хочу сделать параллельным, но не могу заставить его работать. Идея состоит в том, что для каждого значения 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 = 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) 
}

person jjm    schedule 28.03.2017    source источник
comment
Что происходит, когда вы запускаете код?   -  person Nick Kennedy    schedule 29.03.2017
comment
Забавно, что случилось, что он работал, ничего не меняя, но все еще не понимаю, почему, спасибо, что подумал о помощи.   -  person jjm    schedule 29.03.2017


Ответы (1)


Линия:

pathout = paste(folderOut/Data/Subsets/",outfile, sep="") 

отсутствует открывающая двойная кавычка. Должен быть:

pathout = paste("folderOut/Data/Subsets/", outfile, sep="") 

Я не уверен, что это полностью решит вашу проблему, но это должно помочь.

person Jaguar    schedule 28.03.2017
comment
Извините, это была опечатка, я все равно изменил это сейчас, спасибо! :) - person jjm; 29.03.2017