gpt4 book ai didi

r - 使用正则表达式有条件地过滤多列以选择colnames R

转载 作者:行者123 更新时间:2023-12-01 23:07:28 25 4
gpt4 key购买 nike

我有一个与此线程类似的问题:

Search across multiple columns with a regular expression and extract the match

让我们以鸢尾花数据集为例。我想根据几列中的值过滤数据:假设 >=4 在名称以“.Length”结尾的 cols 中。 IRL 数据比这个 reprex 复杂得多,这就是为什么我想在 cols 中使用正则表达式而不是通过它们的索引一个一个地挑选它们。

尝试了多种方式,包括以下几种:

filtered <- iris %>% dplyr::filter(across(matches('.Length')>=4))

没有用。请帮忙。

最佳答案

使用 dplyr::if_all 你可以:

library(dplyr)

iris1 <- iris %>%
filter(if_all(matches(".Length"), ~ .x >= 4))

str(iris1)
#> 'data.frame': 89 obs. of 5 variables:
#> $ Sepal.Length: num 7 6.4 6.9 5.5 6.5 5.7 6.3 6.6 5.9 6 ...
#> $ Sepal.Width : num 3.2 3.2 3.1 2.3 2.8 2.8 3.3 2.9 3 2.2 ...
#> $ Petal.Length: num 4.7 4.5 4.9 4 4.6 4.5 4.7 4.6 4.2 4 ...
#> $ Petal.Width : num 1.4 1.5 1.5 1.3 1.5 1.3 1.6 1.3 1.5 1 ...
#> $ Species : Factor w/ 3 levels "setosa","versicolor",..: 2 2 2 2 2 2 2 2 2 2 ...

关于r - 使用正则表达式有条件地过滤多列以选择colnames R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70563703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com