如何使用基本R中的数据集创建列联表?

列联表是一个看起来像矩阵的交叉表。这些表可以具有相同数量的列和行。如果我们要使用基数R中的数据集创建列联表,则可以使用表函数。例如,如果我们要为mtcars数据的cyl和gear列创建列联表,则可以如以下示例1所示进行操作。

例1

> head(mtcars)

输出结果

mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

示例

> table(mtcars$cyl,mtcars$gear)

输出结果

 3 4 5
4 1 8 2
6 2 4 1
8 12 0 2

示例

> table(mtcars$vs,mtcars$gear)

输出结果

3 4 5
0 12 2 4
1 3 10 1

例2

> head(CO2)

输出结果

Plant Type Treatment conc uptake
1 Qn1 Quebec nonchilled 95 16.0
2 Qn1 Quebec nonchilled 175 30.4
3 Qn1 Quebec nonchilled 250 34.8
4 Qn1 Quebec nonchilled 350 37.2
5 Qn1 Quebec nonchilled 500 35.3
6 Qn1 Quebec nonchilled 675 39.2

示例

> table(CO2$Plant,CO2$Type)

输出结果

Quebec Mississippi
Qn1 7 0
Qn2 7 0
Qn3 7 0
Qc1 7 0
Qc3 7 0
Qc2 7 0
Mn3 0 7
Mn2 0 7
Mn1 0 7
Mc2 0 7
Mc3 0 7
Mc1 0 7

例子3

> head(npk,20)

输出结果

block N P K yield
1 1 0 1 1 49.5
2 1 1 1 0 62.8
3 1 0 0 0 46.8
4 1 1 0 1 57.0
5 2 1 0 0 59.8
6 2 1 1 1 58.5
7 2 0 0 1 55.5
8 2 0 1 0 56.0
9 3 0 1 0 62.8
10 3 1 1 1 55.8
11 3 1 0 0 69.5
12 3 0 0 1 55.0
13 4 1 0 0 62.0
14 4 1 1 1 48.8
15 4 0 0 1 45.5
16 4 0 1 0 44.2
17 5 1 1 0 52.0
18 5 0 0 0 51.5
19 5 1 0 1 49.8
20 5 0 1 1 48.8

示例

> table(npk$N,npk$P)

输出结果

0 1
0 6 6
1 6 6
> table(npk$P,npk$K)

输出结果

0 1
0 6 6
1 6 6

示例

> table(npk$P,npk$K)

输出结果

0 1
0 6 6
1 6 6