循环 R 函数

Looping over an R function

我在 R 中有一个函数可以接收 .vcf 文件并对其进行解析。

例如

x <- "file1.vcf"

file1.parsed <- parse_vcf_alt1(x)

我在一个文件夹中有 177 个 .vcf 文件。

它们看起来像这个文件

https://www.dropbox.com/s/lcdmk57sy3dxexp/file1.vcf?dl=0

我想将这些 .vcf 文件中的每一个一个一个地输入到 parse_vcf_alt1 函数中,并从中获取一个已解析的文件。

手动执行此操作很痛苦。

如何在 R 中自动执行此操作?

此代码给出输出

lapply(dir(), function(f) { if grep('vcf', f) { parse_vcf_alt1(f) }})

但我不知道如何使用自己的名称为每个已解析的 vcf 分别保存或写入输出。

> dput(frame)

 structure(list(), .Names = character(0), row.names = integer(0), class = "data.frame") > 
frame <- data.frame()
lapply(dir(), function(f) { if(grep('vcs', f)) { frame[f] <- parse_vcf_alt1(f) }})
write.csv(frame, 'filename.csv')

dir returns 文件列表,grep 检查它们的名称并在匹配时调用 parse_vcf。 frame[f] 将它分配给数据框的一列,之后可以使用 frame$vcs.hd1.vcf 或任何文件名来检索它。最后,write.csv 会将您的结果写入当前目录中的 filename.csv。