相关疑难解决方法(0)

寻求R函数来融化5维数组,比如pivot_longer

我有一个程序,它使用 reshape2 的melt 函数将具有命名和标记维度的 5 维数组熔化为长格式数据框,根据定义,它只有两个维度。输入数组的每一维对应于输出数据框中的一列,还有一列保存存储在 5D 数组中的值。

我知道 reshape2 已被弃用,很快就会中断。所以我要改成 tidyr。然而 tidyr 的 pivot_longer 函数取代了melt 只接受二维数据帧作为输入。

在 tidyr 或其他地方,是否有未弃用的函数将具有 3 个或更多命名和标记维度的数组融化为长格式数据框?

我可以编写自己的函数来轻松完成。但如果有的话,我宁愿使用现有的功能。

谢谢

下面是一个 2x3x4 数组的例子:

df <- expand.grid(w = 1:2,
                  x = 1:3,
                  y = 1:4)
df$z <- runif(nrow(df))

tmp <- tapply(df$z, list(df$w, df$x, df$y), sum)
tmp
, , 1

           1          2         3
1 0.40276418 0.13111652 0.4473557
2 0.08945365 0.03139184 0.1556355

, , 2

          1          2         3
1 0.1413763 0.02106974 0.1103559
2 0.7302435 0.46302772 0.7924580

, , 3 …
Run Code Online (Sandbox Code Playgroud)

pivot-table r melt reshape2 tidyr

3
推荐指数
1
解决办法
141
查看次数

标签 统计

melt ×1

pivot-table ×1

r ×1

reshape2 ×1

tidyr ×1