我在 R 中有一个数据框。 前两列是我的总和频率“是”和“否”。 最后3列是分类因素,每个都有一个标签。
我正在尝试用这种格式制作一张4-D列联表,我不知道从哪里开始这个过程。
我的数据如下:
Sold Unsold Label1 Label2 Label3
1 3330 32102 AdvancedShopper: Y TERR_USED: Non-TREE SPINOFF: N
2 2735 30691 HSEHLD_INCDT_BAND: 0 CLM_FREE_INCDT_CT: 0 SPINOFF: N
3 3350 29485 TERR_USED: Non-TREE CLM_FREE_INCDT_CT: 0 SPINOFF: N
4 3864 28657 SingleMulti: N TERR_USED: Non-TREE SPINOFF: N
5 2691 26355 TERR_USED: Non-TREE HSEHLD_INCDT_BAND: 0 CLM_FREE_INCDT_CT: 0
6 2396 25884 TERR_USED: Non-TREE HSEHLD_INCDT_BAND: 0 SPINOFF: N
7 2738 25172 Channel: Owned Agency TERR_USED: Non-TREE SPINOFF: N
8 3203 24425 TERR_USED: Non-TREE FULL_CVG_FLG: Y SPINOFF: N
9 2781 24163 SingleMulti: N CLM_FREE_INCDT_CT: 0 SPINOFF: N
10 1950 22371 AdvancedShopper: Y CLM_FREE_INCDT_CT: 0 SPINOFF: N
11 2644 21528 TERR_USED: Non-TREE FULL_CVG_FLG: N SPINOFF: N
12 2278 21736 Channel: Owned Agency SingleMulti: N SPINOFF: N
13 2324 21648 SingleMulti: N HSEHLD_INCDT_BAND: 0 CLM_FREE_INCDT_CT: 0
14 3108 20780 Channel: Prudent TERR_USED: Non-TREE SPINOFF: N
15 2491 21216 TERR_USED: Non-TREE PRIOR_BI: High SPINOFF: N
我从8列开始:每个类别3个类别+ 3个值+(1)编写的行情数量,以及(1)这些行情的销售数量= 8.我将相应的类别和值字符串连接起来形成上面三列。我有19个类别,每个类别都有自己的2到6之间的属性数。排序将按顺序排列相应的列,但不一定形成3个类别的每个组合的4-D框和相应的是(已售出)和不(未售出)。平均销售率为11.4%,我想让频率成形,对这些四向突发事件进行Chi2测试,以确定从平均值中产生最强异常值的组合。我有80046种组合,基本上(19选3),这三种选择中的每一种都有各自的桶,例如,第1行来自16个单元的4-D表(2 attr x 2 attr x 2 attr x [Y,N] ]),第2行来自96个单元格的4-D表(4 attr x 6 attr x 2 attr x [Y,N])......等等。
我不确定如何将这些数据转换为一种格式,以便开始使用table()
和xtabs()
函数,从而开始使用chi2.test
。 (在连接类别和值之前,我应该回到步骤吗?)
我是R的新手,但我知道它应该在为这些大型数组编程方面做得更好。我无法访问SPSS,但如果有更容易尝试的东西,我可以访问SAS(也是新的)......
任何方向都是一个很大的帮助。
-------------------期望的输出?回复---------------------
好吧,table
命令从
Category 1 Category 2 Category 3 Y/N
......成为列联表格式,对吗?但是我已经在频率格式中得到了我的“是”和“否”,其中列出了三个类别。
我是否需要更改为此单实例格式并将我的80046行表分成数百万行?或者有没有办法启动table
命令,其频率为是和否已列在两列中?
答案 0 :(得分:0)
在这种情况下,您可以创建一个变量,该变量给出Yes的百分比为Yes + No:查看这是否适合您(假设您的数据是样本)。
mytab <- xtabs((100*Sold/(Sold+Unsold))~Label1+Label2+Label3, data=sample)
> mytab
, , Label3 = CLM_FREE_INCDT_CT: 0
Label2
Label1 CLM_FREE_INCDT_CT: 0 FULL_CVG_FLG: N FULL_CVG_FLG: Y HSEHLD_INCDT_BAND: 0 PRIOR_BI: High SingleMulti: N
AdvancedShopper: Y 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Channel: Owned Agency 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
Channel: Prudent 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
HSEHLD_INCDT_BAND: 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
SingleMulti: N 0.000000 0.000000 0.000000 9.694644 0.000000 0.000000
TERR_USED: Non-TREE 0.000000 0.000000 0.000000 9.264615 0.000000 0.000000
Label2
Label1 TERR_USED: Non-TREE
AdvancedShopper: Y 0.000000
Channel: Owned Agency 0.000000
Channel: Prudent 0.000000
HSEHLD_INCDT_BAND: 0 0.000000
SingleMulti: N 0.000000
TERR_USED: Non-TREE 0.000000
, , Label3 = SPINOFF: N
Label2
Label1 CLM_FREE_INCDT_CT: 0 FULL_CVG_FLG: N FULL_CVG_FLG: Y HSEHLD_INCDT_BAND: 0 PRIOR_BI: High SingleMulti: N
AdvancedShopper: Y 8.017762 0.000000 0.000000 0.000000 0.000000 0.000000
Channel: Owned Agency 0.000000 0.000000 0.000000 0.000000 0.000000 9.486133
Channel: Prudent 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
HSEHLD_INCDT_BAND: 0 8.182253 0.000000 0.000000 0.000000 0.000000 0.000000
SingleMulti: N 10.321407 0.000000 0.000000 0.000000 0.000000 0.000000
TERR_USED: Non-TREE 10.202528 10.938276 11.593311 8.472419 10.507445 0.000000
Label2
Label1 TERR_USED: Non-TREE
AdvancedShopper: Y 9.398284
Channel: Owned Agency 9.810104
Channel: Prudent 13.010717
HSEHLD_INCDT_BAND: 0 0.000000
SingleMulti: N 11.881553
TERR_USED: Non-TREE 0.000000
Call: xtabs(formula = (100 * Sold/(Sold + Unsold)) ~ Label1 + Label2 +
Label3, data = l)
Number of cases in table: 150.7815
Number of factors: 3
Test for independence of all factors:
Chisq = 412.2, df = 71, p-value = 1.48e-49
Chi-squared approximation may be incorrect