dplyr r :选择名称位于外部向量中的列

J.K*_*.K. 5 select r conditional-statements dplyr

目的

我可以使用dplyr列名位于外部向量中的条件来选择列吗?我发现一些帖子解释了如何使用名称向量对数据框进行子集化,但当向量中的某些名称在数据框中不存在时,我找不到帖子。

示例数据集

  library(tidyverse)
  library(tibble)
  library(data.table)
  
  col_names <- c('a', 'b', 'e')
  
  rename <- dplyr::rename
  select <- dplyr::select
  
  set.seed(10002)
  a <- sample(1:20, 1000, replace=T)
  
  set.seed(10003)
  b <- sample(letters, 1000, replace=T)
  
  set.seed(10004)
  c <- sample(letters, 1000, replace=T)
  
  
  data <-   
    data.frame(a, b, c) 
# I would like to choose a, b that are in col_names vector. 
Run Code Online (Sandbox Code Playgroud)

akr*_*run 10

我们可以any_of使用select

library(dplyr)
data %>%
     select(any_of(col_names))
Run Code Online (Sandbox Code Playgroud)

-输出

 a b
1  1 e
2  4 e
3 13 f
4  8 m
5 10 z
6  3 y
...
Run Code Online (Sandbox Code Playgroud)