IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Fonction "GREGEXPR", "STRSPLIT" ?


Sujet :

R

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 20
    Points : 4
    Points
    4
    Par défaut Fonction "GREGEXPR", "STRSPLIT" ?
    Bonjour,

    J'aimerais à partir d'une colonne de ma base de données arriver à en obtenir une autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    nom1 ; nom2 ; nom3
    nom1
    nom4 ; nom7
    nom2 ; nom6
    nom1 ; nom2 ; nom4 ; nom5
    ...
    Chacune de mes observations sont regroupées en une seule colonne et séparées par un point virgule.
    A partir de ce séparateur commun, je pensais pouvoir trouver quelque chose.

    J'ai essayé avec la fonction GREGEXPR mais je n'arrive pas à en retirer les résultats qui m'intéressent.
    Aussi avec la fonction SPLITSTR mais elle ne fonctionne pas dans ma boucle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i in 1:length(data$c1))
    {data$c2 = 
        length(
            strsplit(as.character(data[i, "c1"]), split = ";"))}
    Sans succès ... Je ne suis pas contre un peu d'aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Janvier 2012
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2012
    Messages : 325
    Points : 888
    Points
    888
    Par défaut
    C'est la 2ème ligne de ton code qui pose problème, avec data[i, "c2"] ça devrais marcher.

    Mais il y a plus simple qu'une boucle for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    data$c2 = sapply( strsplit(as.character(data$c1), split = ";") , length)

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Ah effectivement, l'erreur était vraiment tout bête .. J'y penserais à l'avenir, merci.
    Je débute encore sous R donc ce genre de fonction n'est pas encore à ma maîtrise. Mais encore merci, le code fonctionne parfaitement

    Par curiosité, saurais - tu comment en arriver à ce résultat à l'aide de l'autre fonction ?

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo