这个问题的答案记录了 tidyverse 的类似物reshape2::melt()是tidyr::pivot_longer()。就目前而言,这是事实,但我仍然发现在 tidyverse 中熔化具有定义的暗名称的矩阵的过程比 tidyverse 等效项方便得多。
例子:
z <- matrix(1:12, ncol=3,
dimnames = list(a = 1:4, b = LETTERS[1:3]))
Run Code Online (Sandbox Code Playgroud)
reshape2::melt(z)自动为我提供一个数据框,其中 ID 列名为“a”和“b”,对应于 的元素names(dimnames(z))。
我最初在这里有一个有点笨拙的解决方案,但意识到它不起作用。我认为所需的步骤是
tibble::rownames_to_column("tmp"))pivot_longer()with-tmp并设置names_to为列维度名称这看起来比 笨重得多melt()。显然我可以编写一个实用函数来封装它,但我想知道我是否缺少一个更紧凑和/或 tidyverse 惯用的解决方案。当数据管道的第一步是矩阵时,其他人会做什么?