#r #list
Вопрос:
Объект, который я пытаюсь сохранить, — это тот, который создается после аннотирования области chipseeker
библиотекой
class(peakAnnoList)
[1] "list"
Поэтому, если я попытаюсь увидеть данные внутри объекта, я получу вот так
peakAnnoList
$DOWN
Annotated peaks generated by ChIPseeker
9458/9458 peaks were annotated
Genomic Annotation Summary:
Feature Frequency
5 Promoter 12.359907
1 1st Exon 1.776274
4 Other Exon 5.783464
3 Downstream (<=300) 1.733982
2 Distal Intergenic 78.346373
$High
Annotated peaks generated by ChIPseeker
15395/15395 peaks were annotated
Genomic Annotation Summary:
Feature Frequency
5 Promoter 7.392010
1 1st Exon 1.779799
4 Other Exon 7.417993
3 Downstream (<=300) 2.949009
2 Distal Intergenic 80.461189
$Low
Annotated peaks generated by ChIPseeker
6043/6043 peaks were annotated
Genomic Annotation Summary:
Feature Frequency
5 Promoter 8.406421
1 1st Exon 1.472778
4 Other Exon 4.517624
3 Downstream (<=300) 1.373490
2 Distal Intergenic 84.229687
$UP
Annotated peaks generated by ChIPseeker
16628/16628 peaks were annotated
Genomic Annotation Summary:
Feature Frequency
5 Promoter 9.123166
1 1st Exon 1.677893
4 Other Exon 7.373106
3 Downstream (<=300) 3.103199
2 Distal Intergenic 78.722637
Таким образом, это похоже на каждую категорию, которую я прокомментировал.
Теперь, чтобы получить доступ к дополнительной информации и сохранить их в кадре данных, я должен сделать вот так
UP <- as.data.frame(peakAnnoList[["UP"]]@anno)
DOWN <- as.data.frame(peakAnnoList[["DOWN"]]@anno)
High <- as.data.frame(peakAnnoList[["High"]]@anno)
Low <- as.data.frame(peakAnnoList[["Low"]]@anno)
Как сохранить это в отдельные файлы
Любое предложение или помощь были бы действительно полезны
Ответ №1:
Вы можете использовать любое из семейства функций для записи csv для каждого элемента списка peakAnnoList
.
Вот пример С. Map
Map(function(x, y) write.csv(x@anno, y, row.names = FALSE),
peakAnnoList, paste0(names(peakAnnoList), '.csv'))
Это должно создать новые csv-файлы с именами UP.csv
и т. DOWN.csv
Д. В рабочем каталоге.
То же самое можно достичь с purrr::imap
помощью .
purrr::imap(peakAnnoList, ~readr::write_csv(.x@anno, paste0(.y, '.csv')))
Комментарии:
1. purrr::imap(peakAnnoList, ~readr::write_csv(.x@anno, paste0(.y, ‘.csv’))) первый отлично работает, в нем говорится: «Ошибка в write_delim(x, файл, delim = «,», na = na, добавить = добавить, col_names = col_names, : is.data.frame(x) не соответствует ДЕЙСТВИТЕЛЬНОСТИ»