У меня есть строки, у которых есть точки здесь и там, и я хотел бы удалить их - это сделано, и после некоторых других операций - это также сделано, я хотел бы вставить точки обратно на их первоначальное место - это не сделано. Как я мог это сделать?
library(stringr)
stringOriginal <- c("abc.def","ab.cd.ef","a.b.c.d")
dotIndex <- str_locate_all(pattern ='\\.', stringOriginal)
stringModified <- str_remove_all(stringOriginal, "\\.")
Я вижу, что str_sub()
может помочь, например, str_sub(stringModified[2], 3,2) <- "."
меня куда-то доставляет, но это все еще далеко от правильного места, и я также не знаю, как это сделать программно. Спасибо за ваше время!
обновление
stringOriginal <- c("11.123.100","11.123.200","1.123.1001")
stringOriginalF <- as.factor(stringOriginal)
dotIndex <- str_locate_all(pattern ='\\.', stringOriginal)
stringModified <- str_remove_all(stringOriginal, "\\.")
stringNumFac <- sort(as.numeric(stringModified))
stringi::stri_sub(stringNumFac[1:2], 3, 2) <- "."
stringi::stri_sub(stringNumFac[1:2], 7, 6) <- "."
stringi::stri_sub(stringNumFac[3], 2, 1) <- "."
stringi::stri_sub(stringNumFac[3], 6, 5) <- "."
factor(stringOriginal, levels = stringNumFac)
после таких манипуляций, я могу упорядочить числа и преобразовать их обратно в строки и использовать их позже для зарисовки. Но так как я не знал бы положение точки, я хотел сделать это программно. Другой подход к упорядочению факторов также приветствуется. Хотя мне все еще интересно, как программно вставить символ обратно в строку в том месте, где он был изначально.