在select(dplyr)中使用多个条件

我想使用color = monster.Mana() ,而不是dplyr::select(),来选择数据框的某些列。 我知道还有其他方法可以解决此问题,但是我不知道在contains()内是否可以做到这一点。一个例子:

select()

这给出了一个错误,但是我希望函数给出df <- data.frame(column1= 1:10,col2= 1:10,c3= 1:10) library(dplyr) names(select(df,contains("col") & contains("1")))

我希望"column1"可以使用类似select()的方式,在这里我们可以用运算符设置多个条件,例如filter()

编辑

我注意到我的问题更笼统,我想知道是否可以在filter(df,column1 %in% 1:5 & col2 != 2)中传递任何组合,例如select(),依此类推。但是无法弄清楚如何实现这种功能。

rus_test 回答:在select(dplyr)中使用多个条件

您可以使用select_ifgrepl

library(dplyr)

df %>% 
select_if(grepl("col",names(.)) & grepl(1,names(.)))


#   column1
#1        1
#2        2
#3        3
#4        4
#5        5
#6        6
#7        7
#8        8
#9        9
#10      10

如果要将selectcontains一起使用,可以执行以下操作:

df %>% 
select(intersect(contains("col"),contains("1")))

这可以通过其他方式组合,如注释中所述:

df %>% 
select(intersect(contains("1"),starts_with("c")))
,

您还可以链接两个select呼叫:

library(dplyr)

df <- data.frame(column1 = 1:10,col2 = 1:10,c3 = 1:10)

df %>% 
  select(contains("col")) %>% 
  select(contains("1"))

一线恋人不太优雅

,

您可以使用dplyr::intersect函数

select(df,intersect(contains("col"),contains("1")))

本文链接:https://www.f2er.com/3159288.html

大家都在问