4

嗨,我有一个数据如下所示:

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

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

4

1 回答 1

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

于 2013-09-27T21:36:27.087 回答