【发布时间】:2020-02-19 20:49:17
【问题描述】:
我有一个这种格式的矩阵:
Example_matrix<- structure(list(X1 = c("Species 1", "Species 2", "Species 3",
"Species 4", "Species 5", "Species 6", "Species 7", "Species 8"
), `Site 1` = c(0, 0, 0, 2, 2, 0, 0, 5), `Site 2` = c(0, 0, 0,
4, 0, 0, 0, 0), `Site 3` = c(0, 1, 0, 0, 0, 1, 0, 0), `Site 4` = c(0,
0, 0, 0, 0, 1, 0, 0)), class = c("spec_tbl_df", "tbl_df", "tbl",
"data.frame"), row.names = c(NA, -8L), spec = structure(list(
cols = list(X1 = structure(list(), class = c("collector_character",
"collector")), `Site 1` = structure(list(), class = c("collector_double",
"collector")), `Site 2` = structure(list(), class = c("collector_double",
"collector")), `Site 3` = structure(list(), class = c("collector_double",
"collector")), `Site 4` = structure(list(), class = c("collector_double",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1), class = "col_spec"))
(这是它的简化版)
有没有办法快速将这样的矩阵转换为长格式的df?我看了一些类似的问题,但这些选项对我不起作用。我想要做的就是最终得到一个包含 3 列的 df:Site、Species 和 Abundance(当前是矩阵中每个单元格中的值)。
谢谢!
【问题讨论】:
-
你需要
Example_matrix %>% pivot_longer(cols = starts_with('Site'), names_to = 'Site', values_to = 'Abundance')