advance
advance

Reputation: 83

Pass a string variable to spread function in dplyr

I am trying to make a function which I pass a string variable to dplyr pipeline but having some problem. Like the following

col_spread = "speed".

In select(), I can use get(col_spread) to select the column named speed.

df %>% select(get(col_spread)) 

However, when I am using spread function in dplyr

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

It doesn't work.

Is NSE the only way to go? If so, what should I do?

Thank you!

Upvotes: 1

Views: 695

Answers (1)

MrFlick
MrFlick

Reputation: 206197

Actually get really isn't a great idea. It would be better to use the standard evaulation version of

df %>% select_(col_spread) 

and then for spread it would look like

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

note which values are quoted and which are not. spread_ expects two character values.

Upvotes: 3

Related Questions