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 :

Concaténation des éléments d'un vecteur


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Par défaut Concaténation des éléments d'un vecteur
    Bonjour,

    je cherche une fonction qui me permette de concaténer les éléments d'un vecteur avec un séparateur de mon choix.

    Ex :

    le vecteur A : a b c

    Je souhaite avoir "& a & b & c &"

    Je trouve bizar qu'il n'y ait pas de fonction qui le fasse....

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    e<-c("a","b","c") # définir ton vecteur
    > e
    [1] "a" "b" "c"
    > cat("\n",e,sep="&","\n")
     
    &a&b&c&
    Manoir

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Par défaut
    merci manoir, le truc c'est que cette fonction print le resultat mais ne me permet pas de la mettre dans une autre variable

  4. #4
    Membre Expert
    Avatar de pitipoisson
    Homme Profil pro
    Chercheur
    Inscrit en
    Septembre 2006
    Messages
    1 942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 942
    Par défaut
    Bonjour,
    Citation Envoyé par popsmelove Voir le message
    Je trouve bizar qu'il n'y ait pas de fonction qui le fasse....
    Ça l'eut été effectivement !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    > paste(c("", letters[1:3], ""), collapse=" & ")
    [1] " & a & b & c & "

  5. #5
    Membre confirmé
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Par défaut
    Merci !!!

    Entre temps j'ai fais cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    concat = function(X,sepa="",ext=TRUE,roc=3)
    {
     
    # PURPOSE: Concatenate the different element of a vector or a matrix,
    # with the possibility to do it in columns or in rows
    #---------------------------------------------------------
    # INPUT:
    # * X = Vector or matrix of data
    # * sepa = separator if needed
    # * ext = separator in exterior of the vector
    # * roc = concat in row or columns or all element of the matrix
    # -------------------------------------------------------------
    # OUTPUT:
    # * xma = filtered data
    # -------------------------------------------------------------
    # C. CARPENTIER (2009)
     
    if( is.null( dim(X) ) ) {
     
      if (ext==TRUE) { ex =sepa } else { ex =""}
      A = paste(ex,X[1],sep="")
      sapply(2:length(X),function(i)
      {
        A <<- paste(A,X[i],sep=sepa)
      })->raz  
      paste(A,ex,sep="")  
     
    } else {
     
      if (roc ==3) {
        Y <- as.vector(X)
        concat(Y,sepa,ext)
      } else { apply(X, roc, concat, sepa, ext) }
     
    }	
     
    }

  6. #6
    Membre confirmé
    Homme Profil pro
    Analyste Quantitatif / Ingénieur Financier
    Inscrit en
    Janvier 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Analyste Quantitatif / Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 163
    Par défaut
    Nouvelle version plus simple grâce à pitipoisson !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    ###############################################################################
    # Matrix & Vector concatenation
     
    concat = function(X,collaps="",sepa="",ext=TRUE,roc=3)
    {
     
    # PURPOSE: Concatenate the different element of a vector or a matrix,
    # with the possibility to do it in columns or in rows
    #---------------------------------------------------------
    # INPUT:
    # * X = Vector or matrix of data
    # * sepa = separator if needed
    # * ext = separator in exterior of the vector
    # * roc = concat in row or columns or all element of the matrix
    # -------------------------------------------------------------
    # OUTPUT:
    # * xma = filtered data
    # -------------------------------------------------------------
    # C. CARPENTIER (2009)
     
    if( is.null( dim(X) ) ) {
     
      if (ext==TRUE) { ex =collaps } else { ex =""}
      paste(ex,paste(X,collapse=collaps,sep=sepa),ex,sep=sepa)
     
    } else {
     
      if (roc ==3) {
        Y <- as.vector(X)
        concat(Y,collaps,sepa,ext)
      } else { apply(X, roc, concat, collaps,sepa, ext) }
     
    }	
     
    }

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

Discussions similaires

  1. Supprimer des éléments d'un vecteur
    Par lamine10 dans le forum MATLAB
    Réponses: 1
    Dernier message: 25/07/2010, 13h39
  2. Tracer une courbe à partir des éléments d'un vecteur
    Par User Name dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2010, 20h55
  3. Somme des éléments d'un vecteur
    Par acacia dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 16/02/2009, 13h00
  4. Empiler des éléments de N vecteurs en Matrice?
    Par maiza_med dans le forum MATLAB
    Réponses: 3
    Dernier message: 28/04/2008, 11h56
  5. Réponses: 4
    Dernier message: 17/04/2006, 20h10

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