Je m'excuse d'avance, cela pourrait être une question répétée. Cependant, je viens de passer les deux dernières heures sur stackoverflow, et n'arrive pas à trouver une solution.R: grepl sélectionnez le premier caractère sur une chaîne
Je veux utiliser grepl
pour détecter les lignes qui commencent par un chiffre, c'est ce que j'ai essayé d'utiliser, mais il ne m'a pas donné la réponse rigt:
grep.numeric=as.data.frame(grepl("^[:digit:]",df_mod$name))
Je suppose que le problème est de la expression régulière "^[:digit:]"
, mais je ne pouvais pas comprendre.
MISE À JOUR
Mon dataframe ressemble à ceci, il est énorme, mais au-dessous est un exemple:
ID mark name
1 whatever name product
2 whatever 10 product
3 whatever 250 product
4 another_mark other product
Je veux détecter les produits que leurs noms commencent par un numéro.
MISE A JOUR 2
application grep.numeric=grepl("^[[:digit:]]",df_mod$name)
sur l'exemple ci-dessous me donner la bonne réponse qui est:
grep.numeric
[1] FALSE TRUE TRUE FALSE
Mais, ce qui me rendre fou est quand je pply ce auj à mon vrai dataframe:
grep.numeric=grepl("^[[:digit:]]",df_mod[217,]$nom)
me donne ce résultat:
grep.numeric
[1] FALSE
Mais en fait, ce que j'ai est ceci:
df_mod[217,]$nom
[1] 100 lipo 30 gélules
S'il vous plaît aidez-moi.
Essayez '^ [[: digit:]] '- il doit être à l'intérieur d'une classe de caractères –
J'ai utilisé une question liée à Perl comme doublon source, mais elle est également liée à la classe de caractères POSIX, et devrait donc être pertinente ici aussi. –
@Wiktor Stribiżew J'ai changé '"^[: digit:] "' par '"^[[: digit:]] "' mais rien n'a changé. – sarah