dplyr mutate使用标准评估

时间:2017-05-30 11:46:46

标签: r dplyr nse standard-evaluation

我想在dplyr mutate短语中引用一个对象,该对象在我的数据框中包含变量名。在我的案例中如何使用标准评估:

这是一些虚拟数据:

data.df<-as.data.frame(cbind(c(1,1,1,1,2,2,2,2,3,3,3,3),c(1,2,3,4,1,2,3,4,1,2,3,4),c(5.5,5.5,3.3,3.3,4.4,4.4,3.3,3.3,5.5,6.6,6.6,5.5)))
colnames(data.df) <- c("id","order_vector","variable")

这是我希望能够改变的变量:

dependent_variable<-"variable"

如果直接输入因变量,它对我有用:

data_lead1.df <- arrange(data.df,id, order_vector) %>% 
    group_by(id) %>%
    mutate(variable_lead = lead(variable, 2))

但是,如何使用标准评估以便我可以引用对象dependent_variable?我尝试了以下方法:

data_lead2.df <- arrange(data.df,id, order_vector) %>% 
    group_by(id) %>%
    mutate_(variable_lead = lead(dependent_variable, 2))

data_lead3.df <- arrange(data.df,id, order_vector) %>% 
    group_by(id) %>%
    mutate_(variable_lead = lead(dependent_variable, 2),.dots=setNames(dependent_variable, "dependent_variable_lead" ))

但两种解决方案都没有提供与第一种方法相同的结果:     相同(data_lead1.df $ variable_lead,data_lead2.df $ variable_lead)     假     相同(data_lead1.df $ variable_lead,data_lead3.df $ variable_lead)     假

有人可以帮忙吗?

谢谢!

0 个答案:

没有答案