J'ai une trame de données qui se compose d'un grand nombre de chaînes de caractères composé de 0, 1 et N. Voici quelques exemples:Motif correspondant en utilisant des expressions régulières dans une chaîne de caractères
a = "10000000011111111"
b = "11111111111111111"
c = "11111110000000NNN"
d = "00000000000000000"
e = "00000001111111111"
f = "11111000000000000"
Im la recherche pour une manière d'identifier les chaînes qui consistent seulement en '0' et '1' sans 'N'present. Mon but ultime est de remplacer dans mon cadre de données d'origine «REC» dans les endroits où cette situation se produit. Semblable à ce qui a été fait dans ce question.
Le résultat de mes données ci-dessus serait:
a = "REC"
b = "11111111111111111"
c = "11111110000000NNN"
d = "00000000000000000"
e = "REC"
f = "REC"
La principale stratégie Ive employée (guidée par les réponses de la question précédente) pour atteindre mon objectif utilise gsub
mais je ne peux pas obtenir un regex qui fonctionne pour ma sortie désirée. J'ai essayé trop d'itérations pour essayer ici, mais voici ma fonction la plus récente est la suivante:
markREC <- function(X) {
gsub(X, pattern = "^(0)+.*(1)+$",
replacement = "REC?")}
Cette fonction sera exécutée sur la trame de données avec lapply
L'autre stratégie Ive a essayé appuyé sur strsplit
mais j'ai du mal à faire fonctionner celui-ci aussi. Je peux donner des exemples si les gens aimeraient les voir. J'imagine que ce serait simple pour certains experts en regex, mais après plusieurs heures d'essais, j'adore l'aide!
ce ne marche pas le travail tout à fait, car il capte des chaînes qui ont seulement 0 ou seulement 1 qui jaimerais exclure de ce groupe. J'ai édité la question avec ma sortie désirée. –
@SamGlobus En fait, cela fonctionne parfaitement. Je ne suis pas sûr de ce dont vous parlez. – FailedDev
oui juste à des chaînes similaires à celles des guillemets. Les chaînes seront dans un cadre de données et auront des longueurs différentes. –