将字符串变量传递给dplyr中的spread函数

时间:2016-08-06 21:02:01

标签: r dplyr

我正在尝试创建一个函数,我将字符串变量传递给dplyr管道但有一些问题。如下所示

col_spread = "speed".

在select()中,我可以使用get(col_spread)来选择名为speed的列。

df %>% select(get(col_spread)) 

然而,当我在dplyr中使用扩散功能时

df %>% spread(key = Key_col, value = get(col_spread)) 
Error: Invalid column specification

它不起作用。

NSE是唯一的出路吗?如果是这样,我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:3)

实际上get实际上并不是一个好主意。

的标准评估版本会更好
df %>% select_(col_spread) 

然后传播它看起来像

df %>% spread_("Key_col", col_spread) 

注意引用了哪些值,哪些不是。 spread_需要两个字符值。