首页 > 解决方案 > 根据另一个数据列中的值删除部分字符串

问题描述

我有一个学校数据集,我想去掉学校前面的前缀,所以它只有学校名称(有时是数字)。前缀也在另一列 (tipo.organización) 中列出,因此我想从 tipo.organización 中获取值并将其从学校名称中删除 (nombre.establecimiento)。

我尝试使用 gsub 从名称中删除部分字符串,但我不能只将列名作为一组要更改的值传入。我怎样才能让它遍历每个值并与 tipo.organizacion 列进行比较,然后删除不需要的内容?

data <- read.csv("...", header = TRUE)
data$nombre.establecimiento <- 
as.character(data$nombre.establecimiento)

#Remove Duplicates
new <- data[!duplicated(data$nombre.establecimiento),]

#tried to take out values from other column
new$nombre.establecimiento <- gsub(new$tipo.organización, '', 
new$nombre.establecimiento)

谢谢!!

链接到数据集

标签: r

解决方案


这个问题有一个类似的问题,并且有很多好的答案。在您的情况下,该stringr方法看起来像这样:

new$nombre.establecimiento = str_replace_all(new$nombre.establecimiento,
                                             new$tipo.organización, '')

(我按照链接获取了原始数据集,您可能需要进行一些额外的清理才能使其完成您想要的操作。我看到:tipo.organización重音nombre.establecimiento/不带重音的字符、多余的单词等。当然,您可能已经这样做了!指向已清理数据集的链接将有助于检查这部分问题。)


推荐阅读