Я пытаюсь прочитать набор файлов, разделенных вкладками, в матрицу или data.frame. Для каждого файла мне нужно извлечь один столбец, а затем объединить все столбцы в одну матрицу, сохраняя имена столбцов и строк. Я использую tidyverse (и я ужасен в этом). Я успешно получаю имена столбцов, но пропускаю имена строк на самом последнем этапе обработки.
library("purrr")
library("tibble")
samples <- c("a","b","c","d")
a <- samples %>%
purrr::map_chr(~ file.path(getwd(), TARGET_FOLDER, paste(., "tsv", sep = "."))) %>%
purrr::map(safely(~ read.table(., row.names = 1, skip = 4))) %>%
purrr::set_names(rownames(samples)) %>%
purrr::transpose()
is_ok <- a$error %>% purrr::map_lgl(is_null)
x <- a$result[is_ok] %>%
purrr::map(~ {
v <- .[,1]
names(v) <- rownames(.)
v
}) %>% as_tibble(rownames = NA)
x
data.frame имеет правильные имена столбцов, но не имеет имен строк. Все элементы в списке a
имеют одинаковые имена строк в точно таком же порядке. Я знаю о таких трюках, как rownames(x) <- rownames(a$result[[1]])
, но я ищу более последовательные решения.