【问题标题】:Multiple Variables On One Side Of A Crosstab In RR中交叉表一侧的多个变量
【发布时间】:2014-09-29 23:34:12
【问题描述】:

我有一个如下所示的数据集:

ID  wts     S2      S5.1    S5.2    S5.3
42  0.78    Male    Yes     No      Yes
45  1.22    Female  No      Yes     No
48  0.98    Male    Yes     Yes     Yes
49  1.11    Female  Yes     Yes     No
51  1.21    Male    Yes     Yes     No

我正在尝试使用“descr”包中的“crosstab”函数创建一个加权表。我有一个基本表可以使用以下行正常工作:

crosstab(*fileName*$S5.1,*fileName*$S2,weight=wts,prop.c=T) 

但我真正想做的是将所有 3 个二进制变量都放在表格的 y 轴上。我已经环顾了几天,无法弄清楚。任何帮助,将不胜感激!如果该信息,我将通过 SPSS 文件提取数据。有帮助。

如果这是一个非常简单的问题,我们深表歉意。对 R 来说非常陌生。


dput(head(data))


structure(list(ID = c(42, 45, 48, 49, 51), wts = c(0.78, 1.22, 
0.98, 1.11, 1.21), S2 = structure(c(1L, 2L, 1L, 2L, 1L), .Label = c("Male", 
"Female"), class = "factor"), S5.1 = structure(c(2L, 1L, 2L, 
2L, 2L), .Label = c("No", "Yes"), class = "factor"), S5.2 = structure(c(1L, 
2L, 2L, 2L, 2L), .Label = c("No", "Yes"), class = "factor"), 
S5.3 = structure(c(2L, 1L, 2L, 1L, 1L), .Label = c("No", 
"Yes"), class = "factor")), .Names = c("ID", "wts", "S2", 
"S5.1", "S5.2", "S5.3"), variable.labels = structure(c("", "", 
"Gender", "Dog?", "Cat?", "Bird?"), .Names = c("ID", "wts", "S2", 
"S5.1", "S5.2", "S5.3")), codepage = 1252L, row.names = c(NA, 
5L), class = "data.frame")

我希望有类似的东西......(添加的第二个和第三个是/否分别是 S5.2 和 S5.3)。谢谢!

==========================================
                  temp.spss$S2
temp.spss$S5.1       Male   Female   Total
------------------------------------------
No                      0        1       1
                    0.000   50.000        
------------------------------------------
Yes                     3        1       4
                  100.000   50.000        
------------------------------------------
No                      1        0       1
                    33.333    00.000        
------------------------------------------
Yes                     2        2       4
                    66.666  100.000        
------------------------------------------
No                      1        2       3
                    33.333   100.000        
------------------------------------------
Yes                     2        0       2
                   66.666    0.000        
------------------------------------------
Total                   9        6       15
                   180.000   120.000
==========================================

【问题讨论】:

  • 请在问题编辑中发布dput(head(data)),然后以该数据作为输入显示“正确”答案。
  • 已添加,感谢您的帮助
  • A) 我没有在您想要的输出中看到“y 轴”上的三个项目。 B) 我认为预测一个类别占总数(任何边缘)的 120% 有点可疑。
  • 表中第12行为S5.1,第3、4行为S5.2,第5、6行为S5.3。抱歉,早该提到的。总行将等于超过 100% b/c 我们在表格的 y 轴上使用多个问题。
  • 哦。然后你需要一个不同的解决方案,首先使用重塑。

标签: r crosstab


【解决方案1】:

也许使用交互(并且猜测您不想要所有零条目的行:

install.packages("descr")
 descr::crosstab( with(dat, 
   interaction(S5.1, S5.2, S5.3, drop=TRUE)) ,dat$S2,weight=dat$wts,prop.c=T)

查看结果后,我发现迫切需要审查结果以提高敏感性。

#+-------------------------------------------------------
   Cell Contents 
|-------------------------|
|                   Count | 
|          Column Percent | 
|-------------------------|

================================================================================
                                                         dat$S2
with(dat, interaction(S5.1, S5.2, S5.3, drop = TRUE))    Female     Male   Total
--------------------------------------------------------------------------------
No.Yes.No                                                     1        0       1
                                                         50.000    0.000        
--------------------------------------------------------------------------------
Yes.Yes.No                                                    1        1       2
                                                         50.000   33.333        
--------------------------------------------------------------------------------
Yes.No.Yes                                                    0        1       1
                                                          0.000   33.333        
--------------------------------------------------------------------------------
Yes.Yes.Yes                                                   0        1       1
                                                          0.000   33.333        
--------------------------------------------------------------------------------
Total                                                         2        3       5
                                                         40.000   60.000
================================================================================
>

【讨论】:

    猜你喜欢
    • 2020-07-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2018-01-05
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    相关资源
    最近更新 更多