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
  • Transformation de données


Calculs de moyennes sur des réplicats à partir d’un data frame

2
dans manipulation de données
L’objectif est de calculer une moyenne sur des réplicats techniques/biologiques.
Tous les réplicats d’une condition doivent avoir le même nom.

Tout d’abord on crée une matrice d’accueil pour les résultats.
Nombre de niveaux : le tableau initial contient y réplicats pour z conditions, donc y * z lignes.
La matrice d’accueil n’aura donc plus que z lignes.

Prenons l’exemple du jeu de données « iris ».
Calculons les moyennes par variété pour chaque variable.

 
data(iris)
niveaux<-length(levels(iris$Species))
iris.moyenne<-matrix(nrow=niveaux, ncol=(ncol(iris)-1))
 
#ensuite on calcule la moyenne pour chaque condition, par variable
 
for (i in 1:(ncol(iris)-1))
{iris.moyenne[,i]<-tapply(iris[,i], iris$Species, mean)}
 
#il n'y a plus qu'à améliorer l'allure des résultats
 
colnames(iris.moyenne)<-colnames(iris[, 1:4])
rownames(iris.moyenne)<-levels(iris$Species)
iris.moyenne 
 


On peut également créer une matrice pour des écarts-types par exemple, en remplaçant la fonction dans tapply : utiliser « sd » au lieu de « mean », et changer le nom de la matrice d’accueil.

De manière générale, les fonctions « apply » sont très puissantes pour les calculs et sont très rapides.




Proposé par Thomas.

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

2 Comments

  1. Vincent
    Posté le 9 décembre 2011 a 12 h 39 min | Permalink

    il me semble que la fonction aggregate fait ca très bien.

     
    data(iris)
     aggregate(iris[,-5], list(especes = iris$Species), mean)
     
  2. Thomas
    Posté le 12 décembre 2011 a 16 h 17 min | Permalink

    ah ok merci beaucoup pour le tuyau!

Poster un commentaire


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

*
*


cinq × = 5

Formation logiciel R