如何按R中的分类变量过滤数据框?

要按 R 中的分类变量过滤数据框,我们可以按照以下步骤操作 -

  • 使用内置数据集或创建新数据集并查看数据集中的前几行。

  • 然后,查看数据集中底部的几行。

  • 检查数据结构。

  • 使用拆分功能按分类列过滤数据。

使用内置数据集

让我们考虑基础 R 中的 CO2 数据集 -

data(CO2)
head(CO2,10)

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

Grouped Data: uptake ~ conc | Plant
  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
7 Qn1 Quebec nonchilled 1000 39.7
8 Qn2 Quebec nonchilled 95 13.6
9 Qn2 Quebec nonchilled 175 27.3
10 Qn2 Quebec nonchilled 250 37.1

看下面几行

使用 tail 函数查看 CO2 数据中的一些底部行 -

data(CO2)
tail(CO2,10)

输出

Grouped Data: uptake ~ conc | Plant
    Plant  Type      Treatment conc uptake
75  Mc2 Mississippi chilled    500   12.5
76  Mc2 Mississippi chilled    675   13.7
77  Mc2 Mississippi chilled    1000  14.4
78  Mc3 Mississippi chilled    95    10.6
79  Mc3 Mississippi chilled    175   18.0
80  Mc3 Mississippi chilled    250   17.9
81  Mc3 Mississippi chilled    350   17.9
82  Mc3 Mississippi chilled    500   17.9
83  Mc3 Mississippi chilled    675   18.9
84  Mc3 Mississippi chilled    1000  19.9

检查数据结构

使用 str 函数检查 CO2 中数据的数据结构 -

例子

data(CO2)
str(CO2)

输出

Classes ‘nfnGroupedData’, ‘nfGroupedData’, ‘groupedData’ and 'data.frame': 84 obs.
of 5 variables:
$ Plant    :Ord.factorw/ 12 levels "Qn1"<"Qn2"<"Qn3"<..: 1 1 1 1 1 1 1 2 2 2 ...
$ Type     : Factor w/ 2 levels "Quebec","Mississippi": 1 1 1 1 1 1 1 1 1 1 ...
$ Treatment: Factor w/ 2 levels "nonchilled","chilled": 1 1 1 1 1 1 1 1 1 1 ...
$ conc     : num 95 175 250 350 500 675 1000 95 175 250 ...
$ uptake   : num 16 30.4 34.8 37.2 35.3 39.2 39.7 13.6 27.3 37.1 ...
- attr(*, "formula")=Class 'formula' language uptake ~ conc | Plant
.. ..- attr(*, ".Environment")=<environment: R_EmptyEnv>
- attr(*, "outer")=Class 'formula' language ~Treatment * Type
.. ..- attr(*, ".Environment")=<environment: R_EmptyEnv>
- attr(*, "labels")=List of 2
..$ x: chr "Ambient carbon dioxide concentration"
..$ y: chr "CO2 uptake rate"
- attr(*, "units")=List of 2
..$ x: chr "(uL/L)"
..$ y: chr "(umol/m^2 s)"

按分类列过滤数据框

使用拆分函数根据类型列过滤数据框 CO2 -

data(CO2)
split(CO2,CO2$Type)

输出

$Quebec
Grouped Data: uptake ~ conc | Plant
    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
7  Qn1 Quebec nonchilled 1000  39.7
8  Qn2 Quebec nonchilled 95    13.6
9  Qn2 Quebec nonchilled 175   27.3
10 Qn2 Quebec nonchilled 250   37.1
11 Qn2 Quebec nonchilled 350   41.8
12 Qn2 Quebec nonchilled 500   40.6
13 Qn2 Quebec nonchilled 675   41.4
14 Qn2 Quebec nonchilled 1000  44.3
15 Qn3 Quebec nonchilled 95    16.2
16 Qn3 Quebec nonchilled 175   32.4
17 Qn3 Quebec nonchilled 250   40.3
18 Qn3 Quebec nonchilled 350   42.1
19 Qn3 Quebec nonchilled 500   42.9
20 Qn3 Quebec nonchilled 675   43.9
21 Qn3 Quebec nonchilled 1000  45.5
22 Qc1 Quebec  chilled     95  14.2
23 Qc1 Quebec  chilled    175  24.1
24 Qc1 Quebec  chilled    250  30.3
25 Qc1 Quebec  chilled    350  34.6
26 Qc1 Quebec  chilled    500  32.5
27 Qc1 Quebec  chilled    675  35.4
28 Qc1 Quebec  chilled   1000  38.7
29 Qc2 Quebec  chilled    95   9.3
30 Qc2 Quebec  chilled   175   27.3
31 Qc2 Quebec  chilled   250   35.0
32 Qc2 Quebec  chilled   350   38.8
33 Qc2 Quebec  chilled   500   38.6
34 Qc2 Quebec  chilled   675   37.5
35 Qc2 Quebec  chilled   1000  42.4
36 Qc3 Quebec  chilled   95    15.1
37 Qc3 Quebec  chilled   175   21.0
38 Qc3 Quebec  chilled   250   38.1
39 Qc3 Quebec  chilled   350   34.0
40 Qc3 Quebec  chilled   500   38.9
41 Qc3 Quebec  chilled   675   39.6
42 Qc3 Quebec  chilled   1000  41.4

$Mississippi
Grouped Data: uptake ~ conc | Plant
    Plant  Type     Treatment  conc uptake
43  Mn1 Mississippi nonchilled 95    10.6
44  Mn1 Mississippi nonchilled 175   19.2
45  Mn1 Mississippi nonchilled 250   26.2
46  Mn1 Mississippi nonchilled 350   30.0
47  Mn1 Mississippi nonchilled 500   30.9
48  Mn1 Mississippi nonchilled 675   32.4
49  Mn1 Mississippi nonchilled 1000  35.5
50  Mn2 Mississippi nonchilled 95    12.0
51  Mn2 Mississippi nonchilled 175   22.0
52  Mn2 Mississippi nonchilled 250   30.6
53  Mn2 Mississippi nonchilled 350   31.8
54  Mn2 Mississippi nonchilled 500   32.4
55  Mn2 Mississippi nonchilled 675   31.1
56  Mn2 Mississippi nonchilled 1000  31.5
57  Mn3 Mississippi nonchilled 95    11.3
58  Mn3 Mississippi nonchilled 175   19.4
59  Mn3 Mississippi nonchilled 250   25.8
60  Mn3 Mississippi nonchilled 350   27.9
61  Mn3 Mississippi nonchilled 500   28.5
62  Mn3 Mississippi nonchilled 675   28.1
63  Mn3 Mississippi nonchilled 1000   27.8
64  Mc1 Mississippi chilled    95     10.5
65  Mc1 Mississippi chilled    175    14.9
66  Mc1 Mississippi chilled    250    18.1
67  Mc1 Mississippi chilled    350    18.9
68  Mc1 Mississippi chilled    500    19.5
69  Mc1 Mississippi chilled    675    22.2
70  Mc1 Mississippi chilled    1000   21.9
71  Mc2 Mississippi chilled    95     7.7
72  Mc2 Mississippi chilled    175    11.4
73  Mc2 Mississippi chilled    250    12.3
74  Mc2 Mississippi chilled    350    13.0
75  Mc2 Mississippi chilled    500    12.5
76  Mc2 Mississippi chilled    675    13.7
77  Mc2 Mississippi chilled   1000    14.4
78  Mc3 Mississippi chilled    95     10.6
79  Mc3 Mississippi chilled    175    18.0
80  Mc3 Mississippi chilled    250    17.9
81  Mc3 Mississippi chilled    350    17.9
82  Mc3 Mississippi chilled    500    17.9
83  Mc3 Mississippi chilled    675    18.9
84  Mc3 Mississippi chilled    1000 19.9

猜你喜欢