我是靠谱客的博主 懦弱胡萝卜,这篇文章主要介绍频数表&频率表,现在分享给大家,希望可以做个参考。

一。基本概念

1.频数表是将数据集按照某个特定分类(分组)时观察每个类/组中数据出现次数的表;

2.列联表是观测数据按两个或更多属性/定性变量分类时所列出的频数分布表,是由两个以上的变量进行交叉分类的频数分布表;

3.频数也称“次数”,对样本数据按某些属性进行分组,统计出各个组内含个体的个数,就是频数;

4.一维列联表就是频数分布表;

5.列联表分析的基本问题是:观察各属性之间是否独立,做简单的描述性统计

二。创建频数表

频数表用于探索类别型变量,常用table()和 xtabs()来创建频数表:

1.table()使用N个类别变量(因子)创建一个N维列联表

  • ...:一个或多个可以被解释为factor的对象
  • exclude:如果数据中不包括NA,切useNA未指定,则useNA="ifany"(有疑惑)
  • useNA:table()默认忽略NA,要在频数统计中将NA视为一个有效类别,设定useNA="ifany"
  • dnn:在结果中给维度的命名,向量形式
  • deparse.level:取值为0(dnn名称为空),1(以dnn命名),2(deparse the argument)

2.xtabs()根据一个公式(~var1+var2+...+varN)创建一个N维列联表。

  • formula:公式,要进行交叉分类的变量应出现在公式的右侧,即 ~ 符号的右方,以+ 作为分割符。
  • data:包括有公式中变量名的矩阵或数据框
  • subset:指定data中观测的子集
  • sparse:指定结果是否为sparse matrix
  • na.action:一个函数,指定当包括NA时发生什么。若未指定且addNA为TRUE,则结果为na.pass

 prop.table()以列联表作为参数,以margins定义的边际把列联表中的频数表示为比例关系。

margin.table()以列联表作为参数,以margins定义的边际列表来计算频数的和。

  • table:列联表
  • margins:边际列表,1是第一个分类变量(结果中的行变量),2为第二个分类变量(结果中的列变量)

 3.gmodels包中CrossTable()函数

  • x:向量或矩阵,当指定y时,x为矩阵
  • y:矩阵或数据框中的向量
  • digits:比例中小数点位数
  • expect:TRUE时计算卡方检验
  • prop.r:TRUE时,计算行比例
  • prop.c:TRUE时,计算列比例
  • prop.t:TRUE时,计算table比例
  • chisq:TRUE时,将列出卡方检验结果
  • fisher:TRUE时,TRUE时,将列出Fisher检验结果
  • mcnemar:TRUE时,将列出McNemar检验结果
  • resid:TRUE时,将列出Pearson检验结果
  • sresid:TRUE时,将列出标准化残差结果
  • asresid:TRUE时,将列出校正后标准化残差结果
  • missing.include:TRUE时,删除未使用因子
  • format:输出格式SAS(默认)、SPSS

 例子:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
> library(gmodels) > CrossTable(Arthritis$Treatment, Arthritis$Improved) #默认参数 Cell Contents |-------------------------| | N | | Chi-square contribution | | N / Row Total | | N / Col Total | | N / Table Total | |-------------------------| Total Observations in Table: 84 #总频数(总观察数目) | Arthritis$Improved Arthritis$Treatment | None | Some | Marked | Row Total | --------------------|-----------|-----------|-----------|-----------| Placebo | 29 | 7 | 7 | 43 | #频数 | 2.616 | 0.004 | 3.752 | | #prop.chisq = T | 0.674 | 0.163 | 0.163 | 0.512 | #prop.r = T (29/43) | 0.690 | 0.500 | 0.250 | | #prop.c = T (29/42) | 0.345 | 0.083 | 0.083 | | #prop.t = T (29/84) --------------------|-----------|-----------|-----------|-----------| Treated | 13 | 7 | 21 | 41 | | 2.744 | 0.004 | 3.935 | | | 0.317 | 0.171 | 0.512 | 0.488 | | 0.310 | 0.500 | 0.750 | | | 0.155 | 0.083 | 0.250 | | --------------------|-----------|-----------|-----------|-----------| Column Total | 42 | 14 | 28 | 84 | | 0.500 | 0.167 | 0.333 | | --------------------|-----------|-----------|-----------|-----------| > CrossTable(Arthritis$Treatment, Arthritis$Improved,prop.r = F,prop.c = F,prop.t = F,prop.chisq = T,chisq = T) #比例计算F,chisq = T卡方检验 Cell Contents |-------------------------| | N | | Chi-square contribution | |-------------------------| Total Observations in Table: 84 | Arthritis$Improved Arthritis$Treatment | None | Some | Marked | Row Total | --------------------|-----------|-----------|-----------|-----------| Placebo | 29 | 7 | 7 | 43 | | 2.616 | 0.004 | 3.752 | | --------------------|-----------|-----------|-----------|-----------| Treated | 13 | 7 | 21 | 41 | | 2.744 | 0.004 | 3.935 | | --------------------|-----------|-----------|-----------|-----------| Column Total | 42 | 14 | 28 | 84 | --------------------|-----------|-----------|-----------|-----------| Statistics for All Table Factors Pearson's Chi-squared test ------------------------------------------------------------ Chi^2 = 13.05502 d.f. = 2 p = 0.001462643 #Chi^2=为prop.chisq各值之和,越大,Treatment与Improvement关系越小 #d.f.自由度 > CrossTable(Arthritis$Treatment, Arthritis$Improved,prop.r = F,prop.c = F,prop.t = F,prop.chisq = T,chisq = F,fisher = T) #Fisher检验 Cell Contents |-------------------------| | N | | Chi-square contribution | |-------------------------| Total Observations in Table: 84 | Arthritis$Improved Arthritis$Treatment | None | Some | Marked | Row Total | --------------------|-----------|-----------|-----------|-----------| Placebo | 29 | 7 | 7 | 43 | | 2.616 | 0.004 | 3.752 | | --------------------|-----------|-----------|-----------|-----------| Treated | 13 | 7 | 21 | 41 | | 2.744 | 0.004 | 3.935 | | --------------------|-----------|-----------|-----------|-----------| Column Total | 42 | 14 | 28 | 84 | --------------------|-----------|-----------|-----------|-----------| Fisher's Exact Test for Count Data ------------------------------------------------------------ Alternative hypothesis: two.sided p = 0.001393195 #输出格式为SPSS > CrossTable(Arthritis$Treatment, Arthritis$Improved,format = "SPSS") Cell Contents |-------------------------| | Count | | Chi-square contribution | | Row Percent | | Column Percent | | Total Percent | |-------------------------| Total Observations in Table: 84 | Arthritis$Improved Arthritis$Treatment | None | Some | Marked | Row Total | --------------------|-----------|-----------|-----------|-----------| Placebo | 29 | 7 | 7 | 43 | | 2.616 | 0.004 | 3.752 | | | 67.442% | 16.279% | 16.279% | 51.190% | | 69.048% | 50.000% | 25.000% | | | 34.524% | 8.333% | 8.333% | | --------------------|-----------|-----------|-----------|-----------| Treated | 13 | 7 | 21 | 41 | | 2.744 | 0.004 | 3.935 | | | 31.707% | 17.073% | 51.220% | 48.810% | | 30.952% | 50.000% | 75.000% | | | 15.476% | 8.333% | 25.000% | | --------------------|-----------|-----------|-----------|-----------| Column Total | 42 | 14 | 28 | 84 | | 50.000% | 16.667% | 33.333% | | --------------------|-----------|-----------|-----------|-----------|

4.ftable()结果相较table()、xtabs()更为紧凑

  • row.vars:结果中展示的变量行数(会更改行变量)
  • col.vars:结果中展示的变量列数(会更改列变量)

 table()、xtabs()与ftable()差别

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
> with(Arthritis,table(Treatment,Improved,Sex)) , , Sex = Female Improved Treatment None Some Marked Placebo 19 7 6 Treated 6 5 16 , , Sex = Male Improved Treatment None Some Marked Placebo 10 0 1 Treated 7 2 5 > xtabs(~ Treatment+Improved+Sex, data=Arthritis) , , Sex = Female Improved Treatment None Some Marked Placebo 19 7 6 Treated 6 5 16 , , Sex = Male Improved Treatment None Some Marked Placebo 10 0 1 Treated 7 2 5 > with(Arthritis,ftable(Treatment,Improved,Sex)) #结果更紧凑,分组更详细 Sex Female Male Treatment Improved Placebo None 19 10 Some 7 0 Marked 6 1 Treated None 6 7 Some 5 2 Marked 16 5

 三。将列联表转换为扁平格式

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
table2flat <- function(mytable){ df <- as.data.frame(mytable) rows <- dim(df)[1] cols <- dim(df)[2] x <- NULL for (i in 1:rows) { for (j in 1:df$Freq[i]) { row <- df[i,c(1:(cols-1))] x <- rbind(x,row) } } row.names(x) <- c(1:dim(x)[1]) return(x)

 此函数可以接受R中表格(行列数任意)并返回一个扁平格式的数据框

 

最后

以上就是懦弱胡萝卜最近收集整理的关于频数表&频率表的全部内容,更多相关频数表&频率表内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部