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


Votre recherche:

Comment coller des colonnes ou des lignes pour obtenir un data.frame ? : cbind.data.frame, rbind.data.frame

0
dans fonctions utiles, manipulation de données
- ça ne sert à rien -- c\'est interessant - (score de +1 sur 3 votes)
Loading ... Loading ...

La fonction cbind.data.frame() permet de coller des colonnes et d’obtenir un data.frame.

 
sechage <- factor(c(rep("lent",5),rep("rapide",5)))
marque <- factor(c(rep("Mer",3),rep("Cim",3),rep("vex",4)))
#On crée deux facteurs que l'on souhaite coller
 
ciment <- cbind.data.frame(sechage, marque) #On colle ces deux facteurs
 

De la même manière, la fonction rbind.data.frame() permet de coller des lignes et d’obtenir un data.frame

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment rajouter des lignes ou des colonnes dans des jeux de données sous R ? : cbind, rbind

0
dans Transformation de données
- ça ne sert à rien -- c\'est interessant - (score de +4 sur 14 votes)
Loading ... Loading ...
Lorsque l’on manipule des jeux de données on est souvent amené à vouloir rajouter des colonnes, rajouter des lignes concaténer des jeux de données…

Pour rajouter des colonnes, il faut utiliser la fonction cbind. Il faut que les 2 jeux de données aient le même nombre de ligne.
cbind rajoute les colonnes par la droite.

 
deuxcolonnes<-data.frame(matrix("x",150,2))
names(deuxcolonnes)<-c("colonne1","colonne2")
deuxcolonnes
 
rescol<-cbind(iris,deuxcolonnes)
head(rescol)
 


Pour rajouter des lignes il faut utiliser la fonction rbind. Contrainte : il faut avoir le même nombre de colonnes et que ces colonnes aient le même nom.

 
 
deuxlignes<-data.frame(matrix(1,2,5))
names(deuxlignes)<-names(iris)
deuxlignes
 
reslign<-rbind(deuxlignes,iris)
head(reslign) 
 


 Il faut tout de même veiller à conserver une homogénéité dans les variables (rajouter des character dans une colonne de numeric donnera des NA)




Proposé par Vincent.

Pas encore de commentaire, cliquez ici pour réagir.

Comment utiliser la fonction by de R ?

1
dans Transformation de données
- ça ne sert à rien -- c\'est interessant - (score de +1 sur 1 votes)
Loading ... Loading ...
La fonction « by » est très intéressante pour éviter des boucles « for » et ainsi optimiser le code
data(iris)
summary(iris)
by(iris[,-5],iris[,5],mean)
 
 

ou encore quant vous voulez effectuer une fonction qui n’est pas définie.

 
 by(iris[,-5],iris[,5],function(ob){
#mettez ici l'opération que vous voulez faire sur le subset
return()
})
  
 

Le problème peut être que by retourne une liste et que l’on voudrait avoir un tableau de données. C’est ce que fait la fonction do.call, elle prend une liste et effectue une action dessus (ici rbind).

 
 
data(iris)
summary(iris)
do.call(rbind,by(iris[,-5],iris[,5],mean) )
 
 

Proposé par Guillaume.

1 commentaire. Cliquez ici pour réagir.
Formation logiciel R