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

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

在这篇文章中,我们将学习如何使用Dplyr包在R编程语言中过滤一个字符串列的多个值。

方法1:使用filter()方法

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

语法: filter(df, condition)

参数

df: 数据框架对象

条件: 根据这个条件进行过滤

例子: 使用filter()过滤多个值的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')

输出

  prep     str   date
1   11 Welcome Sunday
2   12      to Monday

方法2:使用带有%in%操作符的filter()。

在这里,首先将你的数据框架对象传递给过滤器函数,然后在条件参数中写上你想过滤多个值的列名,再加上 %in% 操作符,然后传递一个包含你想在结果中得到的所有字符串值的向量。这将产生所有包含指定列中字符串值的行。

语法: filter(df, date %in% c(“星期四”, “一月”, “星期日”))

参数

df: 数据框架对象

条件: column_name %in%值的向量字符串

例子: R程序使用%in%来过滤多个值

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个参数,第一个是过滤器函数,第二个是列名的矢量。

语法: select(filter(df, condition, columns)

参数

df :数据框架对象

condition: 过滤条件

columns: 你想打印的列名的向量

filter()的工作方式与上面给出的几乎相同,唯一的区别是我们在第二个参数中传递的列名矢量。这将只打印在选择函数中传递的列。通过这种方式,我们可以只打印选定的列。

例子: 打印选定的行

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程