在 R DataFrame 中选择具有部分字符串匹配的行
在本文中,我们将讨论如何在 R 编程语言中选择具有部分字符串匹配的行。
方法一:使用stringr包
R 语言中的 stringr 包主要用于字符操作、区域敏感操作、更改空格和模式匹配。在这里,我们将使用其模式匹配功能根据部分字符串匹配过滤数据。
Syntax:
df[str_detect(df$column-name, “Pattern”), ]
Parameters:
- df: determines the dataframe that is being used.
- column-name: determines the column in which strings have to be filtered.
- Pattern: determines the string pattern that has to be matched.
示例:此示例说明如何使用 stringr 包提取具有部分匹配的行。
R
# Load library stringr
library("stringr")
# sample dataframe
data<- data.frame(names=c('Hello','this','Hell','Geeks',
'Geek', 'Geeksforgeeks'))
# Filter data with str_detect for strings
# containing "Gee"
result1<-data[str_detect(data$name, "Gee"), ]
# print result data
result1
# Filter data with str_detect for strings
# containing "Hel"
result2<-data[str_detect(data$name, "Hel"), ]
# print result data
result2
R
# load data.table package
library("data.table")
# sample dataframe
data<- data.frame(names=c('Hello','this','Hell','Geeks',
'Geek', 'Geeksforgeeks'))
# Filter data with %like% all strings having "Gee"
result1<-data[data$name %like% "Gee", ]
# print result data
result1
# Filter data with %like% all strings having "Hel"
result2<-data[data$name %like% "Hel", ]
# print result data
result2
输出:
[1] “Geeks” “Geek” “Geeksforgeeks”
[1] “Hello” “Hell”
方法二:使用data.table包
Data.table 是 R 中 data.frame 包的扩展。它广泛用于快速聚合大型数据集、低延迟添加/更新/删除列、更快的有序连接和快速文件读取器。在这里,我们将使用它的列数据更新功能来根据部分字符串匹配过滤数据。我们将使用 %like%-运算符来选择字符串匹配数据,并相应地从数据框中过滤数据。
Syntax:
df[df$column-name %like% “Pattern”, ]
Parameter:
- df: determines the dataframe that is being used.
- column-name: determines the column in which strings have to be filtered.
- Pattern: determines the string pattern that has to be matched.
示例:此示例说明如何使用 data.table 包提取具有部分匹配的行。
R
# load data.table package
library("data.table")
# sample dataframe
data<- data.frame(names=c('Hello','this','Hell','Geeks',
'Geek', 'Geeksforgeeks'))
# Filter data with %like% all strings having "Gee"
result1<-data[data$name %like% "Gee", ]
# print result data
result1
# Filter data with %like% all strings having "Hel"
result2<-data[data$name %like% "Hel", ]
# print result data
result2
输出:
[1] “Geeks” “Geek” “Geeksforgeeks”
[1] “Hello” “Hell”