R: 选择数值出现在任何一列的行

292 阅读2分钟

你可以使用下面的基本语法在R语言中找到数据框架的行,其中某一个值出现在任何一列中。

library(dplyr)

df %>% filter_all(any_vars(. %in% c('value1', 'value2', ...)))

下面的例子展示了如何在实践中使用这种语法。

例1:查找任何一列中的值

假设我们在R语言中拥有以下数据框。

#define data frame
df = data.frame(points=c(25, 12, 15, 14, 19),
                assists=c(5, 7, 7, 9, 12),
                rebounds=c(11, 8, 10, 6, 6))

#view data frame
df

  points assists rebounds
1     25       5       11
2     12       7        8
3     15       7       10
4     14       9        6
5     19      12        6

下面的语法显示了如何选择数据框中任何一列中包含数值25的所有行。

library(dplyr)

#select rows where 25 appears in any column
df %>% filter_all(any_vars(. %in% c(25)))

  points assists rebounds
1     25       5       11

在任何一列中都有一个数值25的行。

下面的语法显示了如何选择数据框中任何一列中包含数值25、9或6的所有行。

library(dplyr)

#select rows where 25, 9, or 6 appears in any column
df %>% filter_all(any_vars(. %in% c(25, 9, 6)))

  points assists rebounds
1     25       5       11
2     14       9        6
3     19      12        6

例2:查找任何一列中的字符

假设我们在R中拥有以下数据框。

#define data frame
df = data.frame(points=c(25, 12, 15, 14, 19),
                assists=c(5, 7, 7, 9, 12),
                position=c('G', 'G', 'F', 'F', 'C'))

#view data frame
df

  points assists position
1     25       5        G
2     12       7        G
3     15       7        F
4     14       9        F
5     19      12        C

下面的语法显示了如何选择数据框中任何一列中包含字符G的所有行。

library(dplyr)

df %>% filter_all(any_vars(. %in% c('G')))

  points assists position
1     25       5        G
2     12       7        G

有两行的任何一列中出现了字符 "G"。

下面的语法显示了如何选择数据框中任何一列中包含G或C值的所有行。

library(dplyr)

df %>% filter_all(any_vars(. %in% c('G', 'C')))

  points assists position
1     25       5        G
2     12       7        G
3     19      12        C

其他资源

下面的教程解释了如何在R中执行其他常用功能。

如何在R中替换数据框中的值
如何在R中根据一个条件对列进行求和
如何在R中根据条件从数据框中删除行数

The postR: Select Rows Where Value Appears in Any Columnappeared first onStatology.