dcast - 错误:缺少聚合函数

时间:2021-04-29 13:19:00

标签: r reshape2 dcast

关于我的问题的一些背景信息:我使用 2x2 设置对 2 种不同的材料进行了试验。每次处理都是重复进行的,结果在我的数据集中总共运行了 2x2x2x2 = 16 次。数据集具有以下标题,其中重复次数为 1 或 2(就像在 duplo 中执行的那样)。

|运行 |重复 |材料 |风速|班级。速度 |感兴趣的参数|

我想将其转换为具有以下标题的数据框/表格,从而产生 8 列:

|运行 |材料 |风速|班级。速度 |来自重复 1 的感兴趣参数 |来自重复 2 的感兴趣参数 |

这意味着每次处理(材料组合,设置 1 和设置 2)只显示一次,感兴趣的参数显示两次。

我有一个如下所示的数据集:

 code     rep material airspeed classifier_speed fine_fraction
1 L17       1 lupine         50             600          1
2 L19       2 lupine         50             600          6
3 L16       1 lupine         60             600          9
4 L22       2 lupine         60             600          12
5 L18       1 lupine         50             1200         4
6 L21       2 lupine         50             1200         6

我已将其融化如下:

melt1 <- melt(duplo_selection, id.vars = c("material", "airspeed", "classifier_speed", "rep"),
          measure.vars=c("fine_fraction"))

然后尝试按如下方式进行转换:

cast <- dcast(melt1, material + airspeed + classifier_speed ~ variable, value.var = "value")

这给出了以下消息:

<块引用>

缺少聚合函数,默认为'length'

和这个数据框,其中计算了感兴趣的参数,而不是呈现两个值。

1 个答案:

答案 0 :(得分:0)

感谢您的努力和时间来帮助我解决问题,经过一番困惑后,我发现了我必须做的事情。

我在每个观察中添加了 replicate,无论是 1 还是 2,因为试验是在重复中进行的。

通过代码

cast <- dcast(duplo_selection, material + airspeed + classifier_speed ~ replicate, value.var = "fine_fraction")

我来到了我要找的 5 x 8 桌。

相关问题