我这样做的初衷是将dplyr与闪亮的
集成在0.3之前我使用了eval(parse(text = ....)),do.call()方法。
在0.3中,我看到了另外两个选项,例如:
var <- c('disp','hp')
select_(mtcars,.dots = as.lazy_dots(var))
select(mtcars,one_of(var))
但哪一个更好?我打算从Shiny app传递selectInput值,通过dplyr进行数据转换。
另一个问题是,使用动态但不同的键列连接两个不同数据集的正确方法是什么?我有什么可以在0.3中使用的吗?
例如,col_a,col_b是从数据集加入的关键变量a&amp; B'/ P>
left_join(dataset_a,dataset_b, by=c(col_a=col_b))
感谢。
答案 0 :(得分:1)
经过几次尝试后,这是我对第二个问题的解决方案,使用函数创建一个命名向量,然后输入到left_join。
joinCol_a = xxx
joinCol_b = xxx
f <- function(a,b){
vec <- c(b)
names(vec) <- a
return(vec)
}
left_join(dataset_a,dataset_b,by=f(joinCol_a,joinCol_b))
我知道这不是最好的解决方案,但这是我到目前为止所能想到的。