R регулярное выражение: заменить весь строковый список с более конкретной информацией
Вопрос
Если у меня есть данные с категорической переменной, которая имеет такие элементы, как "Q7", "Q2"
и т. Д., Как мне заменить ее генеракодицетагкодом и т. Д.?
Решение
Для начала вы получите максимально возможное задание вопроса, если вы также включите код для того, что вы уже пробовали.Это сказано ...
Возможно, не самый эффективный способ решить эту проблему для больших наборов данных, но эти два метода, кажется, работают просто на вашем примере.example(strsplit)
имеет хорошую функцию разворота String-Reversal, которую мы можем использовать.
> strReverse <- function(x)
sapply(lapply(strsplit(x, NULL), rev), paste, collapse = "")
> strg <- c("Q7", "Q2")
> GS <- gsub("Q", strReverse(" Queen"), strg)
> strReverse(GS)
[1] "7 Queen" "2 Queen"
.
Еще один способ использовать paste
> S <- paste0(strReverse(strg), "ueen")
> gsub("Q", " Q", S)
[1] "7 Queen" "2 Queen"
. Другие советы
rege="nofollow"> Regex
(Q)(\d)
.
<Сильные> Заменить Regex
$2 Queen
.
<Сильное> Описание
1st Capturing group (Q)
Q matches the character Q literally (case insensitive)
2nd Capturing group (\d)
\d match a digit [0-9]
g modifier: global. All matches (don't return on first match)
i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
.
Примечание: Вам понадобится один из них для каждой буквы
Не связан с StackOverflow