r - dplyr::select 基于存储在 attributes() 中的信息
问题描述
让我们创建一个 tibble,添加一个属性,其中包含稍后要选择的变量
mytib<-tibble(aa=1:10,bb=21:30,cc=letters[1:10],dd=letters[11:20])
attributes(mytib)$select_me <- c('bb','cc')
我想select_if
也许可以做到,比如
mytib %>% select_if(~(function(x)names(x)%in%attributes(x)$select_me))
好吧,这不起作用,但你明白了。
写一个根据属性信息返回逻辑向量的函数很容易,但是如何放入select,最好是FP风格。
myfun=function(x)names(x) %in% attributes(x)$select_me
myfun(mytib)
解决方案
这个怎么样?
mytib %>%
select(
one_of(attributes(mytib)$select_me)
)