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 :

Utilisation de la fonction tapply avec FUN=paste


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Statisticien
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut Utilisation de la fonction tapply avec FUN=paste
    Bonjour à tous,
    j'ai un souci dans le format de sortie de la fonction tapply lorsque je veux l'utiliser avec la fonction paste.

    Voici mes données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    donnees<-as.data.frame(matrix(c("A1,A2","B3","C4,C5,C1","D3",1,1,2,2),ncol=2))
     
    > colnames(donnees)<-c("ATG","Serum")
     
    > donnees
           ATG Serum
    1    A1,A2     1
    2       B3     1
    3 C4,C5,C1     2
    4       D3     2
    Pour chaque serum je voudrais concaténer les différentes valeurs de la variable ATG, c'est à dire que pour le serum 1 je voudrais en retour la valeur ATG "A1,A2 B3".

    C'est pourquoi je voulais utiliser la fonction tapply de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Resultat<-tapply(as.character(donnees$ATG), donnees$Serum, FUN=paste)
    Mais le Résultat n'est pas celui escompté car il s'agit d'une liste de vecteurs à 2 éléments Exemple: "A1,A2" et "B3" pour le serum 1 et non une liste de chaine type "A1,A2 B3" pour le serum 1.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Resultat
    $`1`
    [1] "A1,A2" "B3"   
     
    $`2`
    [1] "C4,C5,C1" "D3"
    Or la fonction paste marche bien quand je l'utilise de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    paste(donnees$ATG[1],donnees$ATG[2])
    [1] "A1,A2 B3"

    Je suis un peu perdu, et je ne sais pas si je suis très clair.

    Merci d'avance,
    Benoît

  2. #2
    Membre chevronné
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Par défaut
    Bonjour,
    avez-vous essayé l'option collapse?

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Res <- sapply(split(donnees$ATG,donnees$Serum),FUN=paste,collapse=",")
    Bonne journée

  3. #3
    Membre averti
    Homme Profil pro
    Statisticien
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Statisticien
    Secteur : Santé

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    Bonjour,
    merci beaucoup!
    Cela marche avec l'argument collapse. J'aurais dû mieux lire l'aide en ligne:
    If a value is specified for collapse, the values in the result are then concatenated into a single string, with the elements being separated by the value of collapse
    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/11/2009, 16h27
  2. Utilisation de la fonction replace() avec une regexp
    Par Ishizaki dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/08/2009, 17h39
  3. utilisation de la fonction "deconv" avec des inconnues
    Par tcheck_vi dans le forum MATLAB
    Réponses: 11
    Dernier message: 27/07/2009, 19h49
  4. [RegEx] Utilisation de la fonction "preg_match_all" avec des apostrophe ou des œ
    Par arnaudperfect dans le forum Langage
    Réponses: 4
    Dernier message: 16/08/2008, 23h05
  5. Utilisation de la fonction TOP avec une jointure
    Par pc75 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 06/07/2007, 08h11

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