解决了dcast(melt ..)消息“缺少聚合功能:默认为长度”

时间:2019-07-09 12:59:17

标签: r reshape melt dcast

我的数据如下:

 RNR RoundNR   X     Y     Z       Etc. 
 1       1     13    19    0.0          
 1       2     23    23    0.0      
 2       1     34    17    0.3 
 2       2     33    20    0.4

我希望对此进行格式化,以便为每个变量将RoundNR添加到列标题(实际上,复制每个列标题并根据RoundNR添加1或2,同时将行数减半)。

我已经(成功地)通过以下方式做到了这一点:

temp <- dcast(melt(df_mcmc, id.vars=c("RNR", "RoundNR")), RNR~variable+RoundNR)

然后选择我要创建新df的所有列。

但是,我重新启动计算机后突然出现错误: “缺少聚合功能:默认为长度”。

我发现这可能是由于某些程序包错误所致,因此我在整个代码和melt命令之前添加了reshape2::(我尝试了重塑和重塑2的所有变体以及dcast和melt的前端)。

我得到它想要我添加一个聚合函数,但是它不应该聚合任何本质(没有最小,最大等)。我只想移动一些数据。谁能解释为什么会发生此错误以及如何阻止它?

编辑: akrun提供的答案帮助我找到了问题!虽然在代码中添加rowid不能解决问题(如下面的评论中所述),但确实可以帮助我发现问题。如akrun所述,我每行需要一个唯一的标识符。由于我为一些不相关的任务编辑数据框,所以我意外地复制了其中一行。由于我不再拥有唯一的ID,因此代码停止了工作。

谢谢!

0 个答案:

没有答案