我有以下代码:
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中完成?
答案 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取消引用一个参数
使用
!!
取消函数调用中的单个参数。