📜  使用 Dplyr 在 R 中的字符串列上过滤多个值

📅  最后修改于: 2022-05-13 01:55:44.041000             🧑  作者: Mango

使用 Dplyr 在 R 中的字符串列上过滤多个值

在本文中,我们将学习如何使用 dplyr 包在 R 编程语言中过滤字符串列上的多个值。

方法一:使用 filter() 方法

filter()函数用于选择案例并根据过滤条件过滤掉值。

示例:使用 filter() 过滤多个值的 R 程序

R
library(dplyr)
  
df <- data.frame(prep = c(11:15),
                 str = c("Welcome", "to", "Geeks",
                         "for", "Geeks"),
                 date=c("Sunday","Monday", "Thursday",
                        "January","December"))
  
  
filter(df,date=='Sunday'| date=='Monday')


R
library(dplyr)
  
df <- data.frame(prep = c(11:15),
                 str = c("Welcome", "to", "Geeks",
                         "for", "Geeks"),
                 date=c("Sunday","Monday", "Thursday",
                        "January","December"))
  
filter(df, date %in%  c("Thursday", "January", "Sunday"))


R
library(dplyr)
  
df <- data.frame(prep = c(11:15),
                 str = c("Welcome", "to", "Geeks",
                         "for", "Geeks"),
                 date=c("Sunday","Monday", "Thursday", 
                        "January","December"))
  
filter(df, str %in%  c("Geeks", "to"))


R
library(dplyr)
  
df <- data.frame(prep = c(11:15),
                 str = c("Welcome", "to", "Geeks", 
                         "for", "Geeks"),
                 date=c("Sunday","Monday", "Thursday",
                        "January","December"))
  
  
select(filter(df, date %in% c("January", "Monday")), c(date,prep))


输出:

prep     str   date
1   11 Welcome Sunday
2   12      to Monday

方法 2:将 filter() 与 %in%运算符

在这种情况下,首先,将您的数据帧对象传递给过滤器函数,然后在条件参数中写入您要过滤多个值的列名,然后放置%in%运算符,然后传递一个包含所有字符串值的向量你想要的结果。这将生成包含指定列中字符串值的所有行。

示例:使用 %in% 过滤多个值的 R 程序

电阻

library(dplyr)
  
df <- data.frame(prep = c(11:15),
                 str = c("Welcome", "to", "Geeks",
                         "for", "Geeks"),
                 date=c("Sunday","Monday", "Thursday",
                        "January","December"))
  
filter(df, date %in%  c("Thursday", "January", "Sunday"))

输出:

prep     str     date
1   11 Welcome   Sunday
2   13   Geeks Thursday
3   14     for  January

示例:与上面相同,但在此示例中,我们执行相同的操作,但在具有不同值集的不同列上。

电阻

library(dplyr)
  
df <- data.frame(prep = c(11:15),
                 str = c("Welcome", "to", "Geeks",
                         "for", "Geeks"),
                 date=c("Sunday","Monday", "Thursday", 
                        "January","December"))
  
filter(df, str %in%  c("Geeks", "to"))

输出:

prep   str     date
1   12    to   Monday
2   13 Geeks Thursday
3   15 Geeks December

方法 3:使用 select() 方法

对于此功能, select()函数接受 2 个参数,第一个是过滤器函数,第二个是列名向量,

filter() 的工作方式与上面给出的几乎相同,唯一的区别是我们在第二个参数中传递的列名向量。这仅打印在 select函数中传递的列。这样我们只能打印选定的列。

示例:打印选定的行

电阻

library(dplyr)
  
df <- data.frame(prep = c(11:15),
                 str = c("Welcome", "to", "Geeks", 
                         "for", "Geeks"),
                 date=c("Sunday","Monday", "Thursday",
                        "January","December"))
  
  
select(filter(df, date %in% c("January", "Monday")), c(date,prep))

输出:

date prep
1  Monday   12
2 January   14