gpt4 book ai didi

r - 在任何列中查找包含一个或多个值的行

转载 作者:行者123 更新时间:2023-12-03 10:57:56 24 4
gpt4 key购买 nike

假设我们有一个表“数据”,其中包含多列字符串。我们希望找到包含某个值或更好的是几个值之一的所有行的索引。但是,该列是未知的。

目前,我的工作是:

apply(df, 2, function(x) which(x == "M017"))

df =
1 04.10.2009 01:24:51   M017  <NA>  <NA>    NA
2 04.10.2009 01:24:53 M018 <NA> <NA> NA
3 04.10.2009 01:24:54 M051 <NA> <NA> NA
4 04.10.2009 01:25:06 <NA> M016 <NA> NA
5 04.10.2009 01:25:07 <NA> M015 <NA> NA
6 04.10.2009 01:26:07 <NA> M017 <NA> NA
7 04.10.2009 01:26:27 <NA> M017 <NA> NA
8 04.10.2009 01:27:23 <NA> M017 <NA> NA
9 04.10.2009 01:27:30 <NA> M017 <NA> NA
10 04.10.2009 01:27:32 M017 <NA> <NA> NA
11 04.10.2009 01:27:34 M051 <NA> <NA> NA

如果我们尝试查找多个值,这也将起作用:
apply(df, 2, function(x) which(x %in% c("M017", "M018")))

结果是:
$`1`
integer(0)

$`2`
[1] 1 2 20

$`3`
[1] 16 17 18 19

$`4`
integer(0)

$`5`
integer(0)

但是,处理列表的结果列表非常繁琐。

有没有更有效的方法来查找ANY列中包含一个(或多个)值的行?

最佳答案

怎么样

apply(df, 1, function(r) any(r %in% c("M017", "M018")))

如果第i行包含值之一,则ith元素将为 TRUE,否则为 FALSE。或者,如果只需要行号,请将上面的语句括在 which(...)中。

关于r - 在任何列中查找包含一个或多个值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28233561/

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