您好,我的数据如下:
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...
我不太明白聚合函数的作用是什么,任何帮助和解释都会得到赞赏。
答案 0 :(得分:3)
当我使用您的数据示例执行此操作时,我得到:
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