如何在 R 中根據類別變數過濾資料框?


為了在 R 中根據類別變數過濾資料框,我們可以按照以下步驟操作:

  • 使用內建資料集或建立一個新的資料集,並檢視資料集中的前幾行。

  • 然後,檢視資料集中的最後幾行。

  • 檢查資料結構。

  • 使用 split 函式根據類別列過濾資料。

使用內建資料集

讓我們考慮一下 base R 中的 CO2 資料集:

 線上演示

data(CO2)
head(CO2,10)

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出在您的系統上可能會有所不同):

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.factor w/ 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)"

根據類別列過濾資料框

使用 split 函式根據 Type 列過濾 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

更新時間: 2021年8月14日

3K+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.