嗨,我有一个数据看起来像这样:
partNumber manufacturer supplier availability
p1 m1 s1 100
p1 m1 s2 500
p2 m2 s1 200
p2 m2 s3 300
....
我的预期输出应如下所示:
partNumber manufacturer s1 s2 s3...
p1 m1 100 500 0 ...
p2 m2 200 0 300 ...
...
我试图在 reshape2 包中使用 dcast 来实现这个,这是我的命令:
df.dcast <- dcast(df, partNumber + manufacturer ~ supplier, value.var="availability")
但是,输出值只有 0 和 1,似乎将输出变成了结帐而不是显示可用性值。
partNumber manufacturer s1 s2 s3...
p1 m1 1 1 0 ...
p2 m2 1 0 1 ...
...
顺便说一句,当我运行命令时,有一个警告
Aggregation function missing: defaulting to length...
我不太明白聚合函数的作用是什么,任何帮助和解释都会受到赞赏。
最佳答案
当我使用您的数据示例执行此操作时,我得到:
df.dcast <- dcast(df, partNumber + manufacturer ~ supplier, value.var="availability")
df.dcast
partNumber manufacturer s1 s2 s3
1 p1 m1 100 500 NA
2 p2 m2 200 NA 300
最有可能发生的是您的
availability
列不是您认为的那样。也许它被转换为一个因子变量,因为在输入文件的那一列中有一些文本。如果是这种情况,那么您需要阅读 R-FAQ 7.10
关于R reshape dcast 0 和 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19058525/