1. Grâce à ce formulaire vous pouvez proposer une astuce ou un script sur R.
  2. Votre script doit pouvoir être lancé en l'état. Veuillez penser à :
    • inclure le chargement des "library" nécessaires
    • construire un petit jeu de données si besoin est.
    • commenter les lignes de codes pour en faciliter la compréhension.
  3. Le titre de votre script ou astuce doit être clair et explicite.
  4. Pensez à mettre votre code entre les balises [R] et [/R]; Pour cela, vous pouvez utiliser le bouton

Vous pouvez utiliser vos comptes Facebook, twitter ou google pour vous identifer (google est compatible yahoo, openID...)
L'ideal étant de vous connecter si vous avez un compte utilisateur, ou faire une demande de compte utilisateur si vous n'en avez pas encore.
Créer un compte va vous permettre de pouvoir éditer vos codes et de mettre en avant votre site internet.
Sinon vous pouvez soumettre anonymement en remplissant les champs ci-après.







Choisissez les catégories correspondantes à votre Code:

  • algorithmique
  • Analyse de survie
  • base indispensable
  • bayésien
  • configuration de R
  • exportation de données
  • fonctions utiles
  • graphique
  • importation de données
  • inférence
  • manipulation de données
  • message d'erreur
  • modélisation
  • Non classé
  • optimisation
  • planification
  • programmer avec R
  • regression linéaire
  • Test
  • tidyverse
  • Transformation de données


Comment fusionner deux data.frame ? : merge

2
dans fonctions utiles, manipulation de données, Transformation de données

La fonction merge() permet de fusionner deux data.frame ayant une variables en commun ainsi que des données complémentaires.

 
age <- c(11,13,14)
prenom <- c("simon","nicolas","cyril")
moyenne <- c(12.1,14.2,8.6)
classe <- factor(c("6eme","4eme","3eme"))
 
eleves <- cbind.data.frame(age,prenom,classe, moyenne)
#On colle les données dans un data.frame
 
nb_elev <- c(29,32,36,33)
moy_classe <- c(10.2,11.3,10.6,10.9)
caract_classe <- cbind.data.frame(c("6eme","5eme","4eme","3eme"),nb_elev,moy_classe)
#On colle les données dans un data.frame
 
names(caract_classe) <- c("classe","effectif","moyenne de la classe")
#On attribue à chaque variable le nom que l'on désire
 
merge(eleves,caract_classe,by="classe") 
#On fusionne les données dans un data.frame
#La clé commune aux données est la variable "classe"
#En effet, la variable commune aux data.frame « eleves » et « caract_classe » est la variable classe.
 

 

On obtient :

 

 
 
merge(eleves,caract_classe,by="classe") #La clé est la variable "ville"
  classe age  prenom moyenne effectif moyenne de la classe
1   3eme  14   cyril     8.6       33                 10.9
2   4eme  13 nicolas    14.2       36                 10.6
3   6eme  11   simon    12.1       29                 10.2
 
 

 

Proposé par Helene F.

Ce script vous à rendu service? remerciez l'auteur en votant ici:
- ça ne sert à rien -- c\'est interessant - (score de +4 sur 4 votes)
Loading ... Loading ...

2 Comments

  1. odile leccia
    Posté le 9 février 2016 a 14 h 17 min | Permalink

    Bonjourj’ai deux tableau de plusieurs milliers de lignes. Je voudrais faire une jointure particuliere des deux df :inclure la totalité des lignes du df1 +  les lignes du df2 qui n’ont pas de correspondance dans le df1 sur le champ commun « PK ».  Y a t il une possibilité du style :     -> merge (df1, -df2, PK)  ?Merci d’avance !Cordialement,Odile

  2. Vincent
    Posté le 5 novembre 2016 a 8 h 44 min | Permalink

    @odile, regarde anti_join du package dplyr

Poster un commentaire


Votre email ne seras jamais communiqué champs requis désigné par une *

*
*


neuf − 6 =

Formation logiciel R