2017-08-14 44 views
0

我有一个表,它是由{ID,产品类型}唯一的,并且运行的(数据表),按年:比例表由集团按年独特的观察

id product_type sex year

1 A F 2000

1 B F 2000

1 B F 2001

1 A M 2000

1 B M 2000

1 B M 2001

我谨年(男性和女性顾客的%的一年),以获得性的比例表。

这是我试过,

library(data.table) 
DT <- data.table(salesdata) 
DT[, .(distincts = length(unique(id))), by=list(year,sex)] 

而且它在今年给我的性别的计数。我怎样才能获得年份的男性和女性的百分比或比例?

+0

这个怎么样? 'DT [,表(性别)/总和(表(性别)),by =年]' –

+0

但是,我每年得到两行,我不能告诉哪个是女性的男性。 – econstat

+0

公平点。 “女性”是第一个快速回答,因为它按字母顺序排序。 –

回答

0

试试这个:

gmodels::CrossTable(DT$sex, DT$year, prop.t = F, prop.chisq = F) 

    Cell Contents 
|-------------------------| 
|      N | 
|   N/Row Total | 
|   N/Col Total | 
|-------------------------| 


Total Observations in Table: 6 


      | dt$year 
     dt$sex |  2000 |  2001 | Row Total | 
-------------|-----------|-----------|-----------| 
      F |   2 |   1 |   3 | 
      |  0.667 |  0.333 |  0.500 | 
      |  0.500 |  0.500 |   | 
-------------|-----------|-----------|-----------| 
      M |   2 |   1 |   3 | 
      |  0.667 |  0.333 |  0.500 | 
      |  0.500 |  0.500 |   | 
-------------|-----------|-----------|-----------| 
Column Total |   4 |   2 |   6 | 
      |  0.667 |  0.333 |   | 
-------------|-----------|-----------|-----------|