如何使用dplyr粘贴列子集 [英] How to paste subset of columns using dplyr
本文介绍了如何使用dplyr粘贴列子集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何使用dplyr将data.frame的动态列子集粘贴在一起?
How do I paste together a dynamic subset of columns from a data.frame using dplyr?
如果我具有以下功能:
d = data.frame(a = 1:5, b=2:6, c=3:7)
fun = function(d, colnames){
d$f = Reduce(function(x,y)paste(x,y,sep='_'), d[,colnames])
return(d)
}
fun(d, c('a','b'))
fun(d, c('b','c'))
fun(d, c('a','b','c'))
如何使用dplyr重写函数?
How do I rewrite the function using dplyr?
推荐答案
此处是使用 dplyr
和 rlang
library(dplyr)
library(rlang)
fun = function(d,a,b){
a.var <- enquo(a)
b.var <- enquo(b)
d %>% mutate(f = paste(!!a.var,!!b.var, sep="_"))
}
fun(d,a,b)
< h1>更新
Update
fun = function(d,...){
#browser()
vars <- quos(...)
d %>% mutate(f = paste(!!!vars, sep="_"))
}
fun(d,a)
fun(d,c,a)
fun(d,a,b,c)
这篇关于如何使用dplyr粘贴列子集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文