ivot_longer 语法相当于 reshape::melt

use*_*024 0 r tidyr

这看起来微不足道。我如何在这里使用pivot_longer代替melt:

foo <- matrix(1:9,3,3)
reshape2::melt(foo,varnames = c("x","y"),value.name = "z")

Run Code Online (Sandbox Code Playgroud)

All*_*ron 6

老实说,tidyr只是不允许对矩阵进行这种特定的操作像reshape2::melt以前那样容易。我认为基本 R 可能更简洁:

cbind(expand.grid(x = seq(ncol(foo)), y = seq(nrow(foo))), z = c(foo))
#>   x y z
#> 1 1 1 1
#> 2 2 1 2
#> 3 3 1 3
#> 4 1 2 4
#> 5 2 2 5
#> 6 3 2 6
#> 7 1 3 7
#> 8 2 3 8
#> 9 3 3 9
Run Code Online (Sandbox Code Playgroud)