聚合在一个字段和水平表上另一个

时间:2018-02-23 07:47:19

标签: r data-mining

我有一个包含各种文件的数据集,我希望将其聚合在一列上,并在其他列上进行水平制表

Region  Device
a   ios
a   chrome
a   safari
a   ios
a   chrome
b   chrome
b   chrome
b   safari
c   ios
c   chrome
c   ios

我希望输出像

Region  ios Chrome  safari
a   2   2   1
b   0   2   1
c   2   1   0

我的最终动机是制作表格和图形表示

1 个答案:

答案 0 :(得分:0)

使用基数R:

> dat
   Region Device
1       a    ios
2       a chrome
3       a safari
4       a    ios
5       a chrome
6       b chrome
7       b chrome
8       b safari
9       c    ios
10      c chrome
11      c    ios
> xtabs(s~Region+Device,cbind(dat,s=1))
      Device
Region chrome ios safari
     a      2   2      1
     b      2   0      1
     c      1   2      0

使用reshape2包:

> library(reshape2)
> dcast(dat,Region~Device,length,value.var="Device")
  Region chrome ios safari
1      a      2   2      1
2      b      2   0      1
3      c      1   2      0
>