tidyverse中的NSE与select()

时间:2018-11-01 21:55:16

标签: r tidyverse

我已经使用dplyr(hereherehere)在NSE上阅读了一些stackoverflow问题,但是我仍在努力将其应用于我的使用。

这是我的例子

这项工作

yo <- tibble(ah = 1:10, meh = 11:20)
yup <- yo %>% select(ABX = meh)

但是我想完成这项工作:

i=1
newnames <- c("ABX", "TDX")
yup <- yo %>% select(newnames[i] = meh)

几件事,我尝试都没有成功:

yup <- yo %>% select_(newnames[i] = "meh")
yup <- yo %>% select(!!rlang::sym(newnames[i]) = meh)
yup <- yo %>% select(as.name(newnames[i]) = meh)

有帮助吗?预先感谢。

1 个答案:

答案 0 :(得分:2)

yup <- yo %>% select(!!newnames[i] := meh)

> yup
# A tibble: 10 x 1
     ABX
   <int>
 1    11
 2    12
 3    13
 4    14
 5    15
 6    16
 7    17
 8    18
 9    19
10    20

不知道您是否读过programming with dplyr vignette,但我发现它对增进我对tidyverse中NSE的理解很有帮助。