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.
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.
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 :
J'espère que c'est ce qu'il te fallait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part df <- rbind(df[1], new_line, df[2:nrow(df)])
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])
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.
Néanmoins, je me retrouve face à un certain problème.
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) }
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 ?
edit: je n'avais pas compris la vraie problématique, qui est plutôt d'ajouter un label aux noms de variables...
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 <-
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![]()
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.
Partager