如何在unnest_tokens中将变量值用作列名

时间:2019-10-25 19:41:24

标签: r function parameters local-variables unnest

我有以下代码:

df <- tibble(c1 = 1:3, c2 = c("This is text1",
                              "This is text2",
                              "This is text3"))

#This works ok!
unnest_tokens(df, input=c2,
                  output=word)

#This works ok!
unnest_tokens(df, input="c2",
                 output=word)

#Why this one doesn't work?
a = "c2"
unnest_tokens(df, input=a,
                  output=word)

从上面可以看出,unnest_tokens本身接受c2(列名作为变量)和“ c2”(列名作为字符串)。

但是我希望能够使用第三个选项。传递“ c2”作为变量的值,例如a,然后使用值作为列名。

这是否可以在R的tidytext包函数unnest_tokens中完成?

1 个答案:

答案 0 :(得分:1)

它与tidyverse中的引用有关。尝试使用!!

a = "c2"
unnest_tokens(df, input=!!a,
                  output=word)

# A tibble: 9 x 2
     c1 word 
  <int> <chr>
1     1 this 
2     1 is   
3     1 text1
4     2 this 
5     2 is   
6     2 text2
7     3 this 
8     3 is   
9     3 text3

Hadley Wickham's "Advanced R"是所有这方面的宝贵资源。

  

19.4.1取消引用一个参数

     

使用!!取消函数调用中的单个参数。