gpt4 book ai didi

R:根据多列中的值选择行

转载 作者:行者123 更新时间:2023-12-04 12:26:20 24 4
gpt4 key购买 nike

我有一个数据框,其中有许多列带有公共(public)前缀“_B”,例如“_B1”、“_B2”、...“_Bn”。这样我就可以通过以下方式获取列名:

allB <- c(grep( "_B" , names( my.df ),value = TRUE ) )

我希望选择这些 _B* 列中的每一个都通过单个条件(如 values >= some_cutoff)的行

谁能告诉我该怎么做,我对“all()”和“any()”的努力失败了

set.seed(12345)     
my.df <- data.frame(a = round(rnorm(10,5),1), m_b1= round(rnorm(10,4),1),m_b2=round(rnorm(10,4),1))
allB <- c(grep( "_b" , names( my.df ),value = TRUE ) )
> my.df
a m_b1 m_b2
1 5.6 3.9 4.8
2 5.7 5.8 5.5
3 4.9 4.4 3.4
4 4.5 4.5 2.4
5 5.6 3.2 2.4
6 3.2 4.8 5.8
7 5.6 3.1 3.5
8 4.7 3.7 4.6
9 4.7 5.1 4.6
10 4.1 4.3 3.8

我希望选择每个 m_b1 和 m_b2 列 >= 4.0 的行

最佳答案

我们可以使用 dplyr 中的 filter_at,并指定 all_vars(如果行中的所有值都满足条件。如果是任何行中的值,它将是 any_vars)

library(dplyr)
my.df %>%
filter_at(allB, all_vars(. >= some_cutoff))

数据

some_cutoff <- 3
my.df <- structure(list(`_B1` = c(1, 1, 9, 4, 10), `_B2` = c(2, 3, 12,
6, 12), V3 = c(3, 6, 13, 10, 13), V4 = c(4, 5, 16, 13, 18)), .Names = c("_B1",
"_B2", "V3", "V4"), row.names = c(NA, -5L), class = "data.frame")

allB <- grep( "_B" , names( my.df ),value = TRUE )

关于R:根据多列中的值选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49303243/

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