A:如何根据向量值选择数据框中的行
您可以使用以下任意方法根据向量的值从 R 中的数据框中选择行:
方法一:使用Base R
new_df <- df[df$column_name %in% values_vector, ]
方法2:使用dplyr包
library (dplyr)
new_df <- df %>% filter(column_name %in% values_vector)
以下示例展示了如何在 R 中使用以下数据框实际使用每种方法:
#create data frame
df <- data. frame (division=c('West', 'West', 'East', 'East', 'North'),
points=c(120, 100, 104, 98, 105),
assists=c(30, 35, 64, 28, 23))
#view data frame
df
assists points division
1 West 120 30
2 West 100 35
3 East 104 64
4 East 98 28
5 North 105 23
示例 1:使用 Base R 根据向量值选择行
我们可以使用以下代码仅从原始数据框中选择除法列中的值等于“West”或“North”的行。
#define values of interest
my_values <- c(' West ', ' North ')
#select rows that contain 'West' or 'North' in division column
new_df <- df[df$division %in% my_values, ]
#view results
new_df
assists points division
1 West 120 30
2 West 100 35
5 North 105 23
新数据框仅包含划分列中的值等于“West”或“North”的行。
示例 2:使用 dplyr 根据向量值选择行
我们还可以使用 R 中dplyr包中的filter()函数来仅选择原始数据框中除法列中的值等于“West”或“North”的行。
library (dplyr)
#define values of interest
my_values <- c(' West ', ' North ')
#select rows that contain 'West' or 'North' in division column
new_df <- df %>% filter(division %in% my_values)
#view results
new_df
assists points division
1 West 120 30
2 West 100 35
3 North 105 23
新数据框仅包含划分列中的值等于“West”或“North”的行。
注意:基本 R 和 dplyr 方法产生相同的结果。然而,当处理极大的数据帧时,dplyr 方法往往会更快。
其他资源
以下教程解释了如何在 R 中执行其他常见任务:
如何使用 dplyr 在 R 中选择随机行
如何在R中按条件选择行
如何选择R中任意列中出现值的行