簡體   English   中英

在 R function 上循環

[英]Looping over an R function

我在 R 中有一個 function ,它接收 a.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 function 並從中獲取一個解析文件。

手動執行此操作很痛苦。

如何在 R 中自動執行此操作?

此代碼給出 output

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

但我不知道如何分別用自己的名稱為每個已解析的 vcf 保存或編寫 output 。

> 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 返回文件列表,grep 檢查它們的名稱,如果匹配則調用 parse_vcf。 frame[f] 將它分配給數據框的一列,之后可以使用例如 frame$vcs.hd1.vcf 或任何文件名來檢索它。 最后, write.csv 會將您的結果寫入當前目錄中的 filename.csv。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM