【发布时间】:2016-08-06 08:07:37
【问题描述】:
我正在尝试使用 r 中的表函数来创建列联表。但我得到的不是列联表,而是值(而不是表),两个列表。
我的数据有 15000 个观察值和 2 个变量。数据如下所示:
**Field.Label** |**Form.Name**
------------------------------------|---------------
Applicant Name |F1
------------------------------------|---------------
Phone |F1
------------------------------------|---------------
Address |F1
------------------------------------|---------------
Phone |F2
------------------------------------|---------------
Address |F2
------------------------------------|---------------
Title |F2
------------------------------------|---------------
Phone |F3
------------------------------------|---------------
... |...
我使用了以下代码:
CTable<-table(mydata$Field.Label, mydata$Form.Name)
CTable<-as.data.frame(CTable)
View(CTable)
得到这样的结果,有 1,665,495 个条目(Field.Label 有 8,541 个级别,Form.Name 有 195 个级别。8,541 * 195 = 1,665,495):
** Field.Label** |** Form.Name** |**Freq**
------------------------------------|---------------|-----------
Applicant Name |F1 |1
------------------------------------|---------------|-----------
Phone |F1 |1
------------------------------------|---------------|-----------
Address |F1 |1
------------------------------------|---------------|-----------
Title |F1 |0
------------------------------------|---------------|-----------
Applicant Name |F2 |0
------------------------------------|---------------|-----------
Phone |F2 |1
------------------------------------|---------------|-----------
Address |F2 |1
------------------------------------|---------------|-----------
Title |F2 |1
------------------------------------|---------------|-----------
Applicant Name |F3 |0
------------------------------------|---------------|-----------
Phone |F3 |1
------------------------------------|---------------|-----------
Address |F3 |0
------------------------------------|---------------|-----------
Title |F3 |0
------------------------------------|---------------|-----------
... |...
我怎样才能得到如下列联表的结果?
|**F1** |**F2** |**F3** |
------------------------------------|-------|-------|-------|
Applicant Name | 1 |0 |0 |
------------------------------------|-------|-------|-------|
Phone | 1 |1 |1 |
------------------------------------|-------|-------|-------|
Address | 1 |1 |0 |
------------------------------------|-------|-------|-------|
Title | 0 |1 |0 |
------------------------------------|-------|-------|-------|
谢谢!
【问题讨论】:
-
搜索“reshape wide”或“dcast”,你会找到你想要的。
-
如果@lmo 的评论没有为您提供足够的线索,我建议您重新格式化您的示例以供我们使用。这些可能看起来不错,但我不打算尝试手动输入所有这些来帮助您(抱歉)。我建议阅读reproducible examples。
-
只是不要使用
as.dataframe部分,该值将保持在一个相当宽的表中。 as.data.frame.table 将宽格式对象(继承自matrix)转换为规范化列表版本。 -
@lmo 我已经尝试过了,但对我没有用。感谢您的投入。
-
@r2evans 感谢您向我指出可重现的示例。这很有帮助!
标签: r pivot contingency