首页 > 解决方案 > 当列名匹配向量中的字符时,提取数据框中的列

问题描述

我有一个向量,其字符与数据框中的某些列名匹配。我想提取/子集与向量 v 匹配的列。我可以这样做吗?想象一个大数据框!

a <- sample(100,10)
b <- sample(100,10)
c <- sample(100,10)
d <- sample(100,10)
df <- data.frame(a,b,c,d)
df

    a  b  c  d
1   91 17 93 53
2    9 94 65 55
3   11 58 38 13
4  100 77 98 45
5   69  9 61  2
6   15 50 44 14
7   58 55 88 85
8   78 45 33 51
9   94  3 89 62
10   7 12 90 44 

v <- c("a","c")

wanted output:
a  c
1   91 93
2    9 65
3   11 38
4  100 98
5   69 61
6   15 44
7   58 88
8   78 33
9   94 89
10   7 90
> 

标签: r

解决方案


我们可以用select

library(dplyr)
df %>%
   select(all_of(v))

-输出

#     a   c
#1  26  92
#2  34  15
#3  15  80
#4   4  88
#5  55  69
#6  96  78
#7  63   2
#8  69  62
#9  12 100
#10 16  22

推荐阅读