简体   繁体   English

一个循环函数 R 来执行任务

[英]A loop function R to perform the task

I have file stored in directory named file1.csv, file2.csv, file3.csv....file100.csv.我将文件存储在名为 file1.csv、file2.csv、file3.csv....file100.csv 的目录中。 I have to run series of script with changing file name from 1,2,3...100.我必须运行一系列脚本,将文件名从 1,2,3...100 更改。 script is like脚本就像

a1 <- data2haplohh(hap_file="file1.csv", polarize_vcf=FALSE)

followed by其次是

a_1<-subset(a1, min_maf=0.05)

how can we run loop over these scipts in R. I am trying but getting errors.我们如何在 R 中对这些 scipt 运行循环。我正在尝试但遇到错误。

A way to do in a lapply loop -lapply循环中做的一种lapply -

filenames <- list.files(pattern = 'file\\d+\\.csv', full.names = TRUE)

result <- lapply(filenames, function(x) {
  a1 <- data2haplohh(hap_file=x, polarize_vcf=FALSE)
  subset(a1, min_maf==0.05)  
})

result should be a list of length 100 if you have 100 files.如果您有 100 个文件, result应该是长度为 100 的列表。

We can try like this我们可以这样试试

list2env(
    setNames(
        lapply(
            seq(100),
            function(i) {
                subset(
                    data2haplohh(hap_file = sprintf("file%s.csv", i), polarize_vcf = FALSE),
                    min_maf = 0.05
                )
            }
        ), 
        paste0("a_", seq(100))
    ),
    envir = .GlobalEnv
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM