R 根据列中的值选择列

R 根据列中的值选择列,r,tidyverse,tibble,R,Tidyverse,Tibble,我使用的是tidyverse,并且我知道filter方法允许筛选具有与特定条件匹配的值的所有行,如以下所示。它会筛选至少在on列中值介于0和3之间的所有行 filter_all(any_vars(. > 0 & .<3)) 我们可以使用选择和任何 library(dplyr) df1 %>% select_if(~ any(. > 4)) -输出 # B C #1 1 2 #2 5 1 #3 6 9 或者使用新版本中的where df1 %

我使用的是
tidyverse
,并且我知道
filter
方法允许筛选具有与特定条件匹配的值的所有行,如以下所示。它会筛选至少在on列中值介于0和3之间的所有行

filter_all(any_vars(. > 0 & .<3)) 

我们可以使用
选择
任何

library(dplyr)
df1 %>%
      select_if(~ any(. > 4))
-输出

#  B C
#1 1 2
#2 5 1
#3 6 9

或者使用新版本中的
where

df1 %>%
    select(where(~ any(. > 4)))
#  B C
#1 1 2
#2 5 1
#3 6 9

base R
中,可以使用
Filter

Filter(function(x) any(x > 4), df1)
或使用
sapply

df1[sapply(df1, function(x) any(x > 4))]
或使用
colSums

df1[colSums(df1 >4) > 0]     
数据
df1我们可以使用
select
any

library(dplyr)
df1 %>%
      select_if(~ any(. > 4))
-输出

#  B C
#1 1 2
#2 5 1
#3 6 9

或者使用新版本中的
where

df1 %>%
    select(where(~ any(. > 4)))
#  B C
#1 1 2
#2 5 1
#3 6 9

base R
中,可以使用
Filter

Filter(function(x) any(x > 4), df1)
或使用
sapply

df1[sapply(df1, function(x) any(x > 4))]
或使用
colSums

df1[colSums(df1 >4) > 0]     
数据
df1