我正在尝试将一组制表符分隔的文件读入矩阵或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具有正确的colnames但缺少rownames。 a
列表中的所有元素都具有完全相同顺序的相同rownames。我知道像rownames(x) <- rownames(a$result[[1]])
这样的技巧,但我正在寻找更一致的解决方案。
答案 0 :(得分:0)
事实证明,解决方案比预期的要容易。使用as.data.frame
代替最后as_tibble
解决了它。