Написать таблицу в "для цикла" (R)

У меня есть много последовательностей в текстовом файле. Я импортирую эти последовательности, используя функцию "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 ответ

Решение

Вы могли бы попробовать 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")
Другие вопросы по тегам