如何在 r 中对数据框进行子集化(4 个示例)


您可以使用以下基本语法在 R 中对数据框进行子集化:

 df[rows, columns]

以下示例展示了如何在实践中使用以下数据框使用此语法:

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 C 97 14

示例 1:通过选择列对数据框进行子集化

以下代码显示如何按列名称对数据框进行子集化:

 #select all rows for columns 'team' and 'assists'
df[, c(' team ', ' assists ')]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

我们还可以按列索引值对数据框进行子集化:

 #select all rows for columns 1 and 3
df[, c(1, 3)]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

示例 2:不包括列的子集数据框

以下代码显示如何通过排除特定列名称来对数据框进行子集化:

 #define columns to exclude
cols <- names(df) %in% c(' points ')

#exclude points column
df[!cols]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

我们还可以使用索引值排除列

 #exclude column 2
df[, c(-2)]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

示例 3:通过选择行对数据框进行子集化

以下代码显示如何按特定行对数据框进行子集化:

 #select rows 1, 5, and 7
df[c(1, 5, 7), ]

  team points assists
1 A 77 19
5 C 99 32
7 C 97 14

我们还可以通过选择行范围来对数据框进行子集化:

 #select rows 1 through 5
df[1:5, ]

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32

示例 4:根据条件对数据框进行子集化

下面的代码展示了如何使用subset()函数来选择满足特定条件的行和列:

 #select rows where points is greater than 90
subset(df, points > 90)

  team points assists
5 C 99 32
6 C 92 39
7 C 97 14

我们还可以使用|运算符(“或”)选择满足以下条件之一的行:

 #select rows where points is greater than 90 or less than 80
subset(df, points > 90 | points < 80)

  team points assists
1 A 77 19
5 C 99 32
6 C 92 39
7 C 97 14

我们还可以使用& (“与”)运算符来选择满足多个条件的行:

 #select rows where points is greater than 90 and assists is greater than 30
subset(df, points > 90 & assists > 30)

  team points assists
5 C 99 32
6 C 92 39

我们还可以使用 select 参数根据条件仅选择某些列:

 #select rows where points is greater than 90 and only show 'team' column
subset(df, points > 90, select=c(' team '))

  team
5C
6C
7C

其他资源

如何根据条件从R中的数据框中删除行
如何替换R中数据框中的值
如何从R中的数据框中删除列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注