根据另一个数据列中的值删除字符串的一部分

时间:2019-01-21 17:28:02

标签: r

我有一个学校的数据集,我想删除学校前面的前缀,所以它只有学校名称(有时是数字)。该前缀也在另一列(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)

谢谢!

Link to dataset

1 个答案:

答案 0 :(得分:0)

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

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

(我跟踪了链接并获得了原始数据集,可能您可能需要做一些额外的清理工作才能使它做您想要的事情。我发现{{1}的内容之间有很多差异}和tipo.organización的开头:带重音/无音的字符,多余的单词等。当然,您可能已经在这样做了!指向清理后的数据集的链接将有助于检查这一部分问题。 )