在R中,从列表中的文件夹中读取文件,并按文件名(无文件格式)分配列表元素名称(.fa)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中,从列表中的文件夹中读取文件,并按文件名(无文件格式)分配列表元素名称(.fa)相关的知识,希望对你有一定的参考价值。

我正在制作listfasta文件并从文件夹中读取它们。文件名应指定为list element文件格式的.fa名称。

我正在使用list.files来评估目录"Folder"中的文件

filenames <- list.files("Folder",pattern = ".fa",full.names = T)

而不是读取中的fasta文件。

list <- lapply(filenames, FUN=readDNAStringSet, use.names=T, format="fasta")

我发现这个代码使用setNames来定义list元素名称。

list<- setNames(list, substr(list.files("Folder", pattern=".fa"), 1,15 ))

但我的文件名有不同的长度(难以使用START停止(,1, 15))和进一步处理我想摆脱.fa

文件看起来像:

Gene1.fa
Gene12.fa
Gene22a.fa
Gene123abc.fa

我正在使用DECIPHER,但我想这是一个更基础的R问题?

答案

为了在结尾处删除子字符串,我们也可以使用substr,但要确保从结尾开始索引第一个/最后一个,因为它是变化的

v1 <- list.files("Folder", pattern=".fa")
substring(v1, first  = 1, last = nchar(v1) -3)
#[1] "Gene1"      "Gene12"     "Gene22a"    "Gene123abc"

或者另一种选择是sub来匹配点(. - 匹配任何字符的元字符,所以逃避(\)它以获得字面含义)然后在字符串的末尾($)使用'fa'并将其替换为空白(""

sub("\.fa$", "", v1)

以上是关于在R中,从列表中的文件夹中读取文件,并按文件名(无文件格式)分配列表元素名称(.fa)的主要内容,如果未能解决你的问题,请参考以下文章

cmd添加列内容文件

从文件中读取列表列表作为python中的列表列表

如何从 32 位 R 整数中提取 4 位无符号整数?

从python中的文本文件中读取行(windows)

如何从csv文件中读取python中的数字?

从文件中读取文本到无符号字符数组