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 :

Ajout d'une ligne de titre ?


Sujet :

R

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Ajout d'une ligne de titre ?
    Bonjour,

    J'ai un problème qui paraît anodin mais malgré toutes mes recherches, impossible de trouver une réponse.
    J'aimerais simplement ajouter une ligne dans mon df en début de celui - ci. Et si possible, en deuxième ligne plus précisément.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Apprenti bioinformatique
    Inscrit en
    Mars 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Apprenti bioinformatique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2015
    Messages : 17
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Réponse de débutant, il y a peut-être plus simple/pratique/rapide, mais moi j'utilise rbind.
    Tu crées avant tout ta nouvelle ligne (qui doit impérativement avoir les mêmes noms de colonnes, sinon R va piner. Utilise colnames pour les renommer au cas où), puis rbind.
    Pour insérer à la deuxième ligne, simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    df <- rbind(df[1], new_line, df[2:nrow(df)])
    J'espère que c'est ce qu'il te fallait.
    Ce qui me perturbe un peu c'est que tu parles d'ajouter une ligne de titre, mais à la deuxième ligne ? Peut-être que tu parles d'une ligne de sous-titre ? Auquel cas tu peux te contenter de colnames pour renommer le nom des colonnes si elles sont appelées par défaut V1, V2, etc. Et juste insérer une nouvelle première ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    colnames(df) <- c("bla", "bli", "blo")
    df <- rbind(new_line, df])

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Par ajout d'une ligne de titre, je voulais dire qu'elle complétait la vraie ligne de titre. De façon à avoir deux lignes de titres (une pour noms de mes variables, et l'autre pour l'explication de ce à quoi elles correspondent).

    J'ai essayé ta méthode, sans succès. Je me suis donc tourné vers une fonction que j'ai trouvé ailleurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    insert_perso=function(tab,ligne,i)
    { 
      if(i==1){tab=rbind(ligne,tab)} 
      if(i==nrow(tab)+1){tab=rbind(tab,ligne)} 
      if(i>2 & i<=nrow(tab)){ 
        tab=rbind(tab[1:(i-1),],ligne,tab[i:nrow(tab),]) } 
      return(tab)
    }
    Néanmoins, je me retrouve face à un certain problème.
    Pour l'ajout de la ligne, j'ai dû recoder le format de mes variables "factor" pour ne garder que des variables de type "character" ou "numeric".
    Cependant, lorsque j'ajoute ma ligne, toutes mes variables deviennent de type "character". Ce étant donné que ma ligne est de ce format.

    Y aurait-il un moyen pour ajouter ma ligne sans toucher au format des variables de mon df ?

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    edit: je n'avais pas compris la vraie problématique, qui est plutôt d'ajouter un label aux noms de variables...

  5. #5
    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
    Ajouter une ligne dans une dataframe alors que ce n'est pas des données n'est pas une bonne idée, comme tu l'as remarqué.

    Ce que tu peux faire :
    -N'utiliser que les noms de colonnes, avec un nom style "titre_sousTitre".
    -Utiliser un attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    attributes(DF)$sous.titre <-

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    La première méthode n'est pas envisageable. Puisque cette utilisation de "code" pour mes variables me permet de simplifier grandement les choses.
    Procéder ainsi reviendrais à ne pas changer grand chose au final.

    Pour ce qui est de la seconde méthode, elle fonctionne. Néanmoins, ce qui pose problème ici, c'est que l'attribut n'apparaît ni dans la BDD, ni dans ma base EXCEL. Je vais essayer de chercher un peu de mon côté ... avec cette fonction attributes que je ne connais pas, en espérant avoir des résultats un peu plus concrets.

    Merci pour l'aide apportée en tout cas

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Je me permet de faire remonter le sujet, étant toujours d'actualité.

    J'ai essayé de regarder un peu dans les packages proposés par la plateforme sans toutefois trouver ce qui pourrait m'intéresser. Le CRAN étant anglophone, difficile pour moi d'y chercher efficacement ce que j'aimerais.

  8. #8
    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 un besoin qui t'es spécifique, je ne pense pas qu'un package existe pour ça.
    Par contre c'est pas bien difficile d'arriver au résultat que tu veux en utilisant un attribut ou une variable externe.
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    > df=data.frame(a=1:3,b=3:1)
    > attributes(df)$sous.titre = c("A","B")
    > print_avec_sous_titre = function(df){print(rbind(attributes(df)$sous.titre,df))}
    > print_avec_sous_titre(df)
      a b
    1 A B
    2 1 3
    3 2 2
    4 3 1

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci pour ce code qui fonctionne pour l'ajout de la ligne.
    Néanmoins, la modification du format de colonne est toujours un problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    > df=data.frame(a=1:3,b=3:1)
    > str(df)
    # 'data.frame':	3 obs. of  2 variables:
    # $ a: int  1 2 3
    # $ b: int  3 2 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    > attributes(df)$sous.titre = c("A","B")
    > print_avec_sous_titre = function(df){print(rbind(attributes(df)$sous.titre,df))}
    > df <- print_avec_sous_titre(df)
      a b
    1 A B
    2 1 3
    3 2 2
    4 3 1
    > str(df)
    # 'data.frame':	4 obs. of  2 variables:
    # $ a: chr  "A" "1" "2" "3"
    # $ b: chr  "B" "3" "2" "1"
    # - attr(*, "sous.titre")= chr  "A" "B"
    J'ai pour le moment fais en sorte que cette partie de code soit placée à la fin de mon code. De manière à éviter les soucis de calculs liés à cette modification.
    Si une façon d'y remédier, je suis preneur, sinon tant pis, j'agirais de cette façon. Encore merci en tout cas pour votre aide !

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/06/2015, 14h12
  2. [VBA Excel] Ajouter, supprimer une ligne ou collone range
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/11/2005, 15h53
  3. [AbstractTableModel] ajout d'une ligne
    Par b_52globemaster dans le forum Composants
    Réponses: 7
    Dernier message: 29/07/2005, 13h09
  4. [debutant] [JTable] ajout d'une ligne
    Par lanfeustdetroll dans le forum Composants
    Réponses: 1
    Dernier message: 29/06/2005, 18h19
  5. [C#] Ajout d'une ligne dans un dataset
    Par frechy dans le forum Windows Forms
    Réponses: 9
    Dernier message: 22/12/2004, 09h35

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