1

我有以下数据集:

prod    month    count
sub12  2012-06  566
sub1    2012-06  10239
sub6    2012-06   524
sub12  2012-07   2360
sub1    2012-07   13853
sub6    2012-07    2352
sub12  2012-08   3950
sub1    2012-08   14738
sub6    2012-08   4104

我正在尝试这样做:

prod    2012-06   2012-07
sub12  566          2360
sub1   10239       13853
sub6   524           2352

我已经运行了以下命令行:

aperm(table(data))
data.frame(table(data))

但我得到了错误的结果。

请问我哪里错了?

4

2 回答 2

5

搜索“重塑长宽”。

data <- read.table(text="prod    month    count
sub12  2012-06  566
sub1    2012-06  10239
sub6    2012-06   524
sub12  2012-07   2360
sub1    2012-07   13853
sub6    2012-07    2352
sub12  2012-08   3950
sub1    2012-08   14738
sub6    2012-08   4104",header=TRUE)

library(reshape2)
dcast(prod~month,data=data)
#    prod 2012-06 2012-07 2012-08
# 1  sub1   10239   13853   14738
# 2 sub12     566    2360    3950
# 3  sub6     524    2352    4104
于 2013-07-11T10:54:39.543 回答
0

坚持使用基础 R,您可以使用xtabs

> xtabs(count ~ prod + month, data)
       month
prod    2012-06 2012-07 2012-08
  sub1    10239   13853   14738
  sub12     566    2360    3950
  sub6      524    2352    4104

如果您更喜欢 adata.frame作为输出,请将您的xtabswith包装起来as.data.frame.matrix

> as.data.frame.matrix(xtabs(count ~ prod + month, data))
      2012-06 2012-07 2012-08
sub1    10239   13853   14738
sub12     566    2360    3950
sub6      524    2352    4104
于 2013-07-11T11:47:21.920 回答