我已经能够使用.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)
感谢您的时间!
答案 0 :(得分:0)
我们可以使用interp
中的library(lazyeval)
来传递变量。我们可以使用strsplit
来删除以第一个空格开头到字符串末尾的子字符串字符,而不是list
,而是删除&{39}品牌& #39;列,并使用sub
更改列名称。
setNames