在“for loop”(R)中写一个表

时间:2013-07-28 12:04:58

标签: r bioinformatics sequences fasta

我在文本文件中有很多序列。我使用“read.fasta”函数导入这些序列。 我使用“for loop”为每个序列创建核苷酸频率表,并使用“write.table”来产生输出。但是它为每个序列创建一个文件(许多输出文件和每个文件都有一个序列表)。 我搜索一个命令来创建一个包含所有表格的文件 注意:“mydata.txt”是一个包含许多具有fasta格式的序列的文件

file=read.fasta(file="mydata") 
for (i in seq_along(file))
{
NucleotidesFrequency=table(file[[i]])
print(NucleotidesFrequency)
write.table(NucleotidesFrequency, paste(i, (".txt"), sep=""),sep="\t") 
}

1 个答案:

答案 0 :(得分:0)

您可以尝试rbind(有关详情,请参阅?rbind):

## create example data
set.seed(1)
s <- list(sample(LETTERS[1:4], size=20, replace=T), sample(LETTERS[1:4], size=20, replace=T))

## call table for each item in the list
l <- lapply(s, table)
l
#[[1]]
#A B C D 
#4 5 5 6 
#[[2]]
#A B C D 
#5 7 4 4

## using rbind to create a matrix
d <- do.call(rbind, l)
d
#    A B C D
#[1,] 4 5 5 6
#[2,] 5 7 4 4

## write it into a file
write.table(d, "file.txt")