我的数据如下:
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,因此代码停止了工作。
谢谢!