当名称与向量中的字符匹配时,提取数据框中的列

时间:2020-11-01 17:56:51

标签: r

我有一个向量,该向量的字符与数据框中的某些姓氏匹配。我想提取/细分与向量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
> 

2 个答案:

答案 0 :(得分:1)

我们可以使用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

答案 1 :(得分:0)

> df
    a  b  c  d
1  38 28 68 88
2  18 21 99 40
3  30 33 20 91
4  85 64 88 33
5   9 46 82 51
6  59 86 40 80
7  80 81 46 49
8  57 61 83 37
9  64  6 15 27
10 72 13 37 68
> v <- c("a","c")
> df[v]
    a  c
1  38 68
2  18 99
3  30 20
4  85 88
5   9 82
6  59 40
7  80 46
8  57 83
9  64 15
10 72 37
>