我有以下数据集:
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))
但是我得到了错误的结果。
我哪里错了,拜托?
答案 0 :(得分:5)
搜索“reshape long wide”。
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
答案 1 :(得分: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
如果您希望data.frame
作为输出,请将xtabs
与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