在R中将一个字符向量列表写入单个文件。

11 浏览
0 Comments

在R中将一个字符向量列表写入单个文件。

我有一份字符向量列表,我想把它们写入一个包含所有字符向量的单个文件中。以下是我需要的示例:

>str(mylist)
List of 19
$ geneset1    : chr [1:140] "ASGR2" "ATXN7L3" "BCL6B" "C6orf211" ...
$ geneset2    : chr [1:174] "CKS1B" "CREBL2" "CTNNB1" "CTTN" ...
$ geneset3    : chr [1:346] "AGTR1" "C6" "C6orf211" "CCNK" ...
$ geneset4    : chr [1:259] "ASGR2" "ATF7IP" "ATXN7L3" "CKS1B" ...

我想得到的输出文件应该像这样:

#myfile
>geneset1
ASGR2 ATXN7L3 BCL6B C6orf211
>geneset2
ASGR2 ATXN7L3 BCL6B C6orf211
>geneset3
AGTR1 C6 C6orf211 CCNK

我的方法是这样的:

writeLines(unlist(lapply(mylist, FUN=function(x)paste(x, collapse=" "))), con="test.txt")

但是,我不知道如何在行首添加“>”

谢谢

admin 更改状态以发布 2023年5月20日
0
0 Comments

足够近了,

writeLines(sapply(names(X),function(x) paste(paste0(">",x,"\n"),paste(X[[x]],collapse=" "))), con="test.txt")

0
0 Comments

您可以使用for循环:

out=stdout()
X <- list(geneset1= c("ASGR2","ATXN7L3","BCL6B","C6orf211"),
          geneset2= c("CKS1B","CREBL2","CTNNB1","CTTN"),
          geneset3= c("AGTR1","C6","C6orf211","CCNK" ),
          geneset4= c("ASGR2","ATF7IP","ATXN7L3","CKS1B" ) )
for(i in names(X)) {
    cat(">", i, "\n", file=out)
    cat(X[[i]], "\n", file=out)
}

0