【发布时间】: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您的问题并添加您期望的结果。