当列名具有括号时,使用select_ in dplyr选择列

时间:2017-09-11 04:47:04

标签: r dplyr

在我的数据框中,列名称包含括号。我想使用函数select_来获取我需要的列。

但是,我收到了一条错误消息

Error in overscope_eval_next(overscope, expr) : object 'A.B.V1' not found

我怎么能解决这个问题?

这是重现我的问题的最小例子。

library(dplyr)

a <- data_frame(`A.B.V1:7(1)` = seq(1, 10), B = seq(1, 10))
# Can select one column
a %>% select(`A.B.V1:7(1)`)
# Cannot select columns
col <- c('A.B.V1:7(1)', 'B')
a %>% select_(.dots = col)

1 个答案:

答案 0 :(得分:1)

您可以使用反引号,例如:

col <- c('`A.B.V1:7(1)`', 'B')
a %>% select_(.dots = col)

# A tibble: 10 x 2
`A.B.V1:7(1)`     B
<int> <int>
1             1     1
2             2     2
3             3     3
4             4     4
5             5     5
6             6     6
7             7     7
8             8     8
9             9     9
10            10    10