通过dplyr传递变量

时间:2015-09-18 15:22:34

标签: r dplyr

我已经能够使用.dots和_变量将参数传递给dplyr。但是这种方法似乎不适用于此。我搜索过其他类似的问题,但我还没有找到一个强大的解决方案。

工作示例

library(tidyr)
library(dplyr)

mtcars$brand<-row.names(mtcars)
mtcars_new<-mtcars %>%
   mutate(brand = strsplit(brand," ")) 

mtcars_new$brand<-sapply(mtcars_new$brand, "[", 1)

尝试传入变量 - 失败

 target<-names(mtcars)[length(mtcars)]
 mtcars_new<-mtcars %>%
     mutate(target = strsplit(target," ")) 

 mtcars_new[length(mtcars)]<-sapply(mtcars_new[length(mtcars)], "[", 1)

感谢您的时间!

1 个答案:

答案 0 :(得分:0)

我们可以使用interp中的library(lazyeval)来传递变量。我们可以使用strsplit来删除以第一个空格开头到字符串末尾的子字符串字符,而不是list,而是删除&{39}品牌& #39;列,并使用sub更改列名称。

setNames