У меня есть фрейм данных, который состоит из большого числа символьных строк, состоящих из 0, 1 и N. Вот несколько примеров:
a = "10000000011111111"
b = "11111111111111111"
c = "11111110000000NNN"
d = "00000000000000000"
e = "00000001111111111"
f = "11111000000000000"
Я ищу способ идентификации строк, которые состоят только из '0' и '1' без 'N' присутствует. Моя конечная цель - заменить в моем исходном фрейме данных «REC» в тех местах, где происходит такая ситуация. Подобно тому, что было сделано в этом вопросе .
Результат из моих приведенных выше данных будет:
a = "REC"
b = "11111111111111111"
c = "11111110000000NNN"
d = "00000000000000000"
e = "REC"
f = "REC"
Основная стратегия, которую я использовал (руководствуясь ответами из предыдущего вопроса) для достижения своей цели, использует gsub
, но я не могу получить регулярное выражение, которое будет работать для моего желаемого результата. Я пробовал слишком много итераций, чтобы попробовать здесь, но вот моя последняя функция:
markREC <- function(X) {
gsub(X, pattern = "^(0)+.*(1)+$",
replacement = "REC?")}
Эта функция будет запущена для фрейма данных с lapply
Другая стратегия, которую я попробовал, основывалась на strsplit
, но у меня возникли проблемы с тем, чтобы эта тоже работала. Я могу привести примеры, если люди хотят их видеть. Я полагаю, что это будет просто для некоторых экспертов по регулярным выражениям, но после многих часов попыток, я бы хотел помочь!