如何检查和删除一列中的字符串是否与R中另一列中的字符串匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查和删除一列中的字符串是否与R中另一列中的字符串匹配相关的知识,希望对你有一定的参考价值。

我有一个大数据框。样本数据:

> df <- data.frame(MAKE = c('FORD','FORD','FORD','BMW','BMW'),
+                    MODEL = c('ECO SPORT','ECO SPORT','ECO SPORT','3 SERIES','5 SERIES'),
+                  VARIANT = c('ECOSPORT 1.0','ECOSPORT 1.5','ECOSPORT 1.5','E90','5 SERIES F(10)'))
> 
> df
  MAKE     MODEL        VARIANT
1 FORD ECO SPORT   ECOSPORT 1.0
2 FORD ECO SPORT   ECOSPORT 1.5
3 FORD ECO SPORT   ECOSPORT 1.5
4  BMW  3 SERIES            E90
5  BMW  5 SERIES   5 SERIES F(10)
> 

我需要在“模型”列中找到并删除“变量”列中的字符串。最初,我首先尝试使用下面的命令标识行,但是它不起作用。

> df[df$MODEL %in% df$VARIANT,]
[1] MAKE    MODEL   VARIANT
<0 rows> (or 0-length row.names)
> 

有人可以让我知道如何完成同样的工作。预期输出:

> df
  MAKE     MODEL        VARIANT
1 FORD  ECO SPORT         1.0
2 FORD  ECO SPORT         1.5
3 FORD  ECO SPORT         1.5
4  BMW   3 SERIES         E90
5  BMW   5 SERIES         F(10)
> 
答案

我们可以使用str_remove

library(dplyr)
library(stringr)   
df %>%
    mutate(VARIANT  = str_remove_all(as.character(VARIANT), 
               str_remove(as.character(MODEL), ' ')))

以上是关于如何检查和删除一列中的字符串是否与R中另一列中的字符串匹配的主要内容,如果未能解决你的问题,请参考以下文章

使用 Filter 或 If Else 根据 R 中另一列中的值过滤指标

查询与 Hive QL 中另一列中的每个值关联的最短字符串值的更有效方法

如何根据bigquery中另一列中的重复值计算一列

从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]

如何计算包含一组列中的值和 Pandas 数据框中另一列中的另一个值的行数?

如何根据Python中另一列中的日期查找最频繁的值