如何检查和删除一列中的字符串是否与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 中另一列中的每个值关联的最短字符串值的更有效方法
从pandas DataFrame中另一列中的位置给定的字符串列中提取字符[重复]