【问题标题】:dcast - error: Aggregate function missingdcast - 错误:缺少聚合函数
【发布时间】:2021-07-22 20:55:04
【问题描述】:

关于我的问题的一些背景信息:我使用 2x2 设置对 2 种不同的材料进行了试验。每次处理都是在 duplo 中执行的,因此在我的数据集中总共有 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) 请不要将数据粘贴为 图像,我不会花时间转录它,尤其是当您在你的控制台。最好通过粘贴来自dput(x) 的输出在您的问题中包含示例数据,其中x 是示例(可能是head(myframe))。 (2) 这是data.table::dcast还是reshape2::dcast
  • (3) 关于defaulting to 'length' 的消息不是错误,它只是一个消息 告诉您您没有提供聚合功能。如果您阅读?dcast(来自任何一个包),它会提到fun.aggregate=
  • 我使用了 reshape2::dcast 我对图片表示歉意,我将在我的问题中将数据作为表格上传
  • 很难产生一个好的、可重复的问题,而且走捷径经常会破坏事情。在这种情况下,Error: id variables not found in data: rep。有一个 R 包 reprex 可帮助完成此过程,确保您打算在此处发布的代码不会因此类(意外、可避免的)原因而出错。
  • 我们仍然认为这不是错误,也不一定是错误的。它只是通知您使用dcast 进行扩展/重塑可能会导致数据聚合/组合,而您并没有明确说明您希望如何完成。您没有提到dcast(.) 的结果是否正确;如果是,则该 message 通过添加 dcast(., fun.aggregate=length) 消失。如果没有,请edit您的问题并添加您期望的结果。

标签: r reshape2 dcast


【解决方案1】:

感谢您的努力和时间来帮助我,在有点困惑之后,我发现了我必须做的事情。

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

通过代码

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

我来到了我正在寻找的 5 x 8 桌子。

【讨论】:

    猜你喜欢
    • 2017-01-31
    • 2016-10-12
    • 2010-10-30
    相关资源
    最近更新 更多