R重塑dcast 0和1

时间:2013-09-27 19:20:55

标签: r casting reshape reshape2

您好,我的数据如下:

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... 

我不太明白聚合函数的作用是什么,任何帮助和解释都会得到赞赏。

1 个答案:

答案 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