首页 > 解决方案 > 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)

标签: rdplyr

解决方案


这个怎么样?

mytib %>% 
  select(
    one_of(attributes(mytib)$select_me)
  )

推荐阅读