【发布时间】: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 轴上使用多个问题。
-
哦。然后你需要一个不同的解决方案,首先使用重塑。