Считайте набор файлов в матрицу в R

Я пытаюсь прочитать набор файлов, разделенных вкладками, в матрицу или 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]]), но я ищу более последовательные решения.


person ftabaro    schedule 14.04.2018    source источник


Ответы (1)


Оказалось, что решение оказалось проще, чем ожидалось. Использование as.data.frame вместо последнего as_tibble решило эту проблему.

person ftabaro    schedule 14.04.2018