Sadece A dizesi (örn. "MECH") olduğunda, A dizesini A dizesiyle değiştirmem gerekiyor ve A parçası olduğunda değiştirme yapmak istemiyorum. Daha uzun bir dizgenin (örneğin "MEKANİK"). Şimdiye kadar, dize A'nın tam bir dizgisi olup olmadığını kontrol eden bir grepl() var, ama nasıl değiştirileceğini anlayamıyorum. Grep(), TRUE değerini döndürürse, aksi takdirde değiştirmemesi durumunda gsub() değiştirmeyi yapmayı düşünen bir ifelse() ekledim. Baska öneri? Lütfen aşağıdaki kodu inceleyin. Teşekkürler.Koşullu olarak bulmak ve değiştirmek için düzenli ifade
aa <- data.frame(type = c("CONSTR", "MECH CONSTRUCTION", "MECHANICAL CONSTRUCTION MECH", "MECH CONSTR", "MECHCONSTRUCTION"))
from <- c("MECH", "MECHANICAL", "CONSTR", "CONSTRUCTION")
to <- c("MECHANICAL", "MECHANICAL", "CONSTRUCTION", "CONSTRUCTION")
gsub2 <- function(pattern, replacement, x, ...) {
for(i in 1:length(pattern)){
reg <- paste0("(^", pattern[i], "$)|(^", pattern[i], ")|(", pattern[i], "$)|(", pattern[i], ")")
ifelse(grepl(reg, aa$type),
x <- gsub(pattern[i], replacement[i], x, ...),
aa$type)
}
x
}
aa$title3 <- gsub2(from, to, aa$type)
Öğe 5'te fark ettim, MECH'in yerini almadı. Olmalı mı? –