La Doua Dans l'Oeil
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-39%
Le deal à ne pas rater :
Pack Home Cinéma Magnat Monitor : Ampli DENON AVR-X2800H, Enceinte ...
1190 € 1950 €
Voir le deal

Aide_Sélection_Données_Sous_R

5 participants

Page 1 sur 2 1, 2  Suivant

Aller en bas

Aide_Sélection_Données_Sous_R Empty Aide_Sélection_Données_Sous_R

Message  did10 Jeu 4 Juin - 11:01

Chers amis,

j'ai besoin de votre aide, étant novice avec le logiciel R.
Voila mon probleme:
Je dispose d'une base de données qui à l'allure suivante:

N° du lot | Paramètre | Valeur |
--------------------------------
Lot1 | Paramètre1 | 0.5 |
Lot2 | Parametre1 | 0.55 |
Lot3 | Parametre1 | 0.66 |
.... | ...... | ..... |
Lot36 | Parametre1 | 0.42 |
Lot1 | Parametre2 | 1.54 |
.... | .... | ..... |
Lot36 | Parametre2 | 1.62 |
.... | .... | ..... |
Lot1 | Parametre53 | 5.36 |
.... | .... | .... |
Lot36 | Parametre53 | 5.24 |
---------------------------------

Pour résumer, je dispose de 53 paramètres et chacun d'entre eux à 36 valeurs différentes (en fonction du Lot).
Ce que je cherche à faire est de calculer pour chaque paramètre: les quantiles 10% et 90% puis de ne récupérer ensuite que les valeurs comprises entre ces deux quantiles (tjs pour chaque paramètre) et pour finir de calculer la moyenne des valeurs restantes pour chacun des paramètres.

Je compte sur vous pour m'éclairer Very Happy
Cdlt

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  Adrien Jeu 4 Juin - 13:52

Salut,

et tout d'abord bienvenu sur notre forum et dans le monde magique de R !! Wink

la première chose que je te propose est de faire des "summary"

insere ton fichier :
Code:
> read.table("toto.txt", h=T)->toto

ensuite, en faisant :
Code:
summary(toto$Valeur[toto$Parametre=="param1"])
tu auras cette sortie :
Code:
 
Min. 1st Qu. Median Mean 3rd Qu. Max.
5.000 8.000 11.000 9.333 11.500 12.000
donc les infos que tu cherches...
Pour un quantile en particulier (ex: 10%) :
Code:
quantile(toto$valeur[toto$param==2],probs=0.1)

pour faire l'ensemble en une seule formule, il te faut une boucle
(je laisse nik t'expliquer, il sera meilleur que moi...
tu peux regarder ce post pour t'inspirer :
https://ladoua.exprimetoi.net/biostatistiques-f59/fonction-boucle-sous-r-t414.htm


ensuite pour ne récup que tes valeurs comprises entre tes quantiles :
Code:
pt2=toto$valeur[toto$param==2&toto$valeur>=6.2&toto$valeur>=15.3]
si tes bornes sont 6.2 et 15.3

tu peux faire une boucle également...
à ce moment là, nomme ton quantile :
Code:
Q10=quantile(toto$valeur[toto$param==2],probs=0.1)
et
Code:
pt2=toto$valeur[toto$param==2&toto$valeur>=Q10&toto$valeur>=Q90]

Si t'as un probleme avec ces formules, fais moi signe,
pour les fonctions de boucle, jte laisse voir avec Nik....
Adrien
Adrien
Squatteurs
Squatteurs

Nombre de messages : 398
Age : 40
Niveau et domaine de formation : Doctorant Ecologie (LBBE)
Etablissement : UCB Lyon1
Date d'inscription : 08/10/2007

https://ladoua.exprimetoi.net

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Jeu 4 Juin - 15:13

Re, merci a toi pour ta réponse.
En fait, calculer les quantiles 10% et 90% je savais comment faire, mon gros problème est effectivement au niveau des boucles afin d'effectuer les opérations pour chacun des 53 paramètres.
Donc si qqn est un expert des boucles qu'il me fasse signe Laughing

Merci

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Mer 10 Juin - 0:26

Alors les gens, personne pour m'aider a faire cette boucle ??

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  Margaux Mer 10 Juin - 9:41

Éventuellement envoie un mp à Nik, c'est lui qui pourra t'aider sur ce point là mais peut être qu'il ne vient pas très régulièrement sur le forum. S'il reçoit un mail qui lui dit qu'il a nouveau mp il viendra voir ce qu'il en est...
Margaux
Margaux
Squatteurs
Squatteurs

Nombre de messages : 157
Niveau et domaine de formation : Master2 neurosciences (recherche)
Etablissement : UCB Lyon1
Date d'inscription : 21/10/2007

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  Adrien Jeu 11 Juin - 7:43

je le contacte pour lui demander son aide Wink
Adrien
Adrien
Squatteurs
Squatteurs

Nombre de messages : 398
Age : 40
Niveau et domaine de formation : Doctorant Ecologie (LBBE)
Etablissement : UCB Lyon1
Date d'inscription : 08/10/2007

https://ladoua.exprimetoi.net

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  nik Ven 12 Juin - 16:20

Tu es dans le même cas que ce post

Regardes l'aide de la fonction tapply()
Sur tes données ça donne quelque chose comme ça :

Code:
tapply(Valeur,Paramètre,function (x) x <- mean(x[x>quantile(x,probs=.1) & x<quantile(x,probs=.9)]))

voilà un bout de code reproductible :

Code:
value <- runif(108)
param <- rep(paste("par",1:3,sep=""),each=36)
result<- tapply(value,param,function (x) x <- mean(x[x>quantile(x,probs=.1) & x<quantile(x,probs=.9)]))

Nik

nik
Bavard
Bavard

Nombre de messages : 57
Niveau et domaine de formation : Doctorat Ecologie
Etablissement : UCB Lyon1
Date d'inscription : 22/09/2008

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Lun 29 Juin - 12:55

Oula merci, je viens seulement de voir ta réponse Nik, j'essaye de suite. Par contre, a quoi sert la commande: "value <- runif(108)"

Merci

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  tania Lun 29 Juin - 13:04

Salut salut. Pour la commande: "value <- runif(108)",
value est le nom de l'objet créé, et la fonction runif(108) va te donner n=108 valeurs tirées aléatoires (r pour random) selon une loi uniforme (unif) entre 0 et 1 (valeurs par défauts si tu ne précises rien).
En cas de doute sur une fonction dans R, n'hésite pas à consulter l'aide, elle est très bien faite. Pour la faire apparaitre: >?runif
Tu peux aussi faire ta recherche sur le net avec google, normalement tu tomberas sur l'aide en ligne. A+.
Tania
tania
tania
Bavard
Bavard

Nombre de messages : 77
Age : 39
Niveau et domaine de formation : master 2 écologie évolution biométrie
Etablissement : ucbl
Date d'inscription : 27/10/2007

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Lun 29 Juin - 13:19

C'est cool ça marche !! Merci à toi Nik, tu gères et merci aux autres également, ce forum est super !

A+
Did

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  nik Lun 29 Juin - 15:00

you're welcome Smile

nik
Bavard
Bavard

Nombre de messages : 57
Niveau et domaine de formation : Doctorat Ecologie
Etablissement : UCB Lyon1
Date d'inscription : 22/09/2008

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Lun 29 Juin - 15:46

Tiens Nik encore une ptite question: je souhaiterais maintenant exporter les résultats dans un fichier .csv avec deux colonnes: paramétre et result (la moyenne obtenue)

Merci de ton aide
Did

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  nik Lun 29 Juin - 16:55

il suffit d'utiliser la fonction write.csv() une fois que tu as la table qui t'intéresse.

par exemple avec :

Code:
write.csv(data.frame(result)),file = "moncsv.csv")

il y a différentes options dans write.csv, tu peux consulter l'aide en faisant ?write.csv

a+

nik
Bavard
Bavard

Nombre de messages : 57
Niveau et domaine de formation : Doctorat Ecologie
Etablissement : UCB Lyon1
Date d'inscription : 22/09/2008

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Lun 6 Juil - 15:51

Bonjour à tous, j'ai encore besoin de votre précieuse aide, concernant les graphiques cette fois-ci.
Toujours avec la même base de données + la moyenne trouvée (grâce à Nik) pour chaque paramètre, je souhaiterais afficher un graphique (nuage de points) pour chaque paramètre, avec pour abscisse le numéro du lot et pour ordonnée la valeur, et ajouter également sur chaque graph la droite correspondant à la moyenne trouvée pour le paramètre.

Merci de votre aide, j'éspère avoir été clair Rolling Eyes

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  tania Lun 6 Juil - 16:58

Salut. Pour le graphe de ton nuage de points, la fonction est plot(x,y), avec x le vecteur qui contient tes abscisses et y celui qui contient tes ordonnées. Pour rajouter une droite c'est la fonction abline. Si tu veux une droite horizontale qui représente ta moyenne, l'intercept (ou ordonnée à l'origine, argument a) vaut ta moyenne et la pente (b) vaut 0. Tu peux aussi rentrer une régression linéaire (lmX~Y) pour définir ta droite. Pour les options de graphe (type et couleur de points..) il y a pas mal de détails dans la fiche de td r14 disponible sur le site du pbil:
http://pbil.univ-lyon1.fr/R/enseignement.html
Sinon tu peux aussi représenter tes données avec des boîtes à moustaches (fonction boxplot), qui te donne une boîte par modalité. J'espère que c'est clair. A+


Dernière édition par tania le Mar 7 Juil - 11:11, édité 1 fois
tania
tania
Bavard
Bavard

Nombre de messages : 77
Age : 39
Niveau et domaine de formation : master 2 écologie évolution biométrie
Etablissement : ucbl
Date d'inscription : 27/10/2007

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Lun 6 Juil - 17:15

Merci Tania mais le probleme est que la fonction "plot" agit sur deux variables x et y quantitaives et moi le y (n° du lot) est une variable quantitative
D'autre part, l'autre pb est au niveau de la boucle, afin d'afficher un graph pour chaque paramètre, je ne suis tjs pas a l'aise avec ça ...

Merci
A+

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Lun 6 Juil - 17:16

oups, rectification, "plot" agit sur deux variables qualitatives

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  tania Lun 6 Juil - 18:29

A priori le N°de lot c'est X (ton abscisse), pas Y (ton paramètre). Du coup la fonction plot marche bien mais te fais des boites à moustaches. Si tu veux absolument des points, il te suffit de créer un vecteur numérique qui assigne un nombre (1,2..n) à chaque lot. Pour ta boucle, tu veux enregistrer au fur et à mesure chaque graphe? En quel format?
tania
tania
Bavard
Bavard

Nombre de messages : 77
Age : 39
Niveau et domaine de formation : master 2 écologie évolution biométrie
Etablissement : ucbl
Date d'inscription : 27/10/2007

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  nik Mar 7 Juil - 0:03

Salut,

tapply ne se limite pas à faire des moyennes ou autre stat. Tu peux parfaitement faire des graphs :

Code:
par(mfrow=c(3,3),ask=T,bty='l') ##qqs paramètres graphiques
tapply(value, param, function(x) {plot(x~c(1:36));abline(h=mean(x))})

Si jamais tu veux mettre un titre différent à chaque graphique (genre le nom du paramètre) alors la boucle devient incontournable pour ce que j'en sais.

Avec ce code il faut que dans ton tableau de données, les lots soient toujours ordonnés de 1 à 36 dans le même ordre qq soit le paramètre et qu'il y ait toujurs 36 valeurs (sinon un length(x) à la place de 36 devrait contourner un pb de différence de longueur)

lol on va finir par croire que je ne fais que des tapply Razz

nik
Bavard
Bavard

Nombre de messages : 57
Niveau et domaine de formation : Doctorat Ecologie
Etablissement : UCB Lyon1
Date d'inscription : 22/09/2008

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Mar 7 Juil - 16:43

J'ai essayé ta formule Nik et voici le message d'erreur:

Erreur dans model.frame.default(formula = x ~ c(1:36), na.action = NULL) :
les longueurs des variables diffèrent (trouvé pour 'c(1:36)')


D'autre part, j'aimerais en effet différencier chacun des graphes en mettant pour titre le nom du paramètre, si possible

Merci
A+

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  nik Mer 8 Juil - 14:45

Cela indique que pour l'un de tes paramètres, tu n'as pas 36 valeurs.
Code:
tapply(value, param, function(x) {plot(x~c(1:length(x)));abline(h=mean(x))})

sinon pour le code avec le nom :

Code:
par(mfrow=c3,3)
for (i in 1:nlevels(param)){
plot(1:length(param[param==levels(param)[i]]),value[param==levels(param)[i]])
abline(h=tapply(value,param,mean)[i])
}

J'ai pas testé alors peut être qu'il y a des petites erreurs Smile

nik
Bavard
Bavard

Nombre de messages : 57
Niveau et domaine de formation : Doctorat Ecologie
Etablissement : UCB Lyon1
Date d'inscription : 22/09/2008

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Mer 8 Juil - 15:20

En fait, lorsque je demande de tracer la droite horizontale mean, je parle en fait des valeurs que l'on a trouver précédemment (moyenne en enlevant les 10% de chaque côté, pour chaque paramètre), toi Nik tu confond avec la fonction mean() qui va me tracer la moyenne brute du lot et ce n'est pas ce que je recherche en fait

Je souhaiterais tracer sur chacun des graphs la droite ayant pour valeur la moyenne que l'on avait trouvée et qui est stockée en mémoire. Autre point, comment faire pour que R nous affiche les graphs pour tous les paramètres (ici 53 graphs normalement) car R n'affiche que les derniers.

Merci de votre aide
Didier

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  nik Mer 8 Juil - 20:02

non non je ne confond pas Wink
Je n'ai tout simplement pas tout repris t'ayant déjà donné auparavant le moyen de le faire.
Tu vois que dans le tracé de la moyenne (à la fin de la boucle) je réutilise le même type de syntaxe que ce que je t'avais donné dans un premier temps. Donc tu peux reprendre le script précédent pour les moyennes de l'intervalle inter-quantile ( j'ai juste eu la flemme de faire un copier/collé Razz)
R c'est comme tout, il faut avoir quelques méthodes sous le coude pour pouvoir les combibner astucieusement afin de gagner du temps.
Je t'ai également indiqué le par(ask=T) qui permet de stopper l'ouverture successive de fenêtre graphique jusqu'à ce qu'on appuie sur une touche. Cela permet au moins d'avoir le temps de visualiser les graphiques et même de les imprimer. Il faut donc jouer avec le paramètre graphique mfrow pour découper ta fenêtre graphique pour afficher plusieurs graph à la fois mais tu ne pourras pas mettre les 53 sur une même fenêtre sinon ce sera illisible d'où l'appel à ask.
Tu peux aussi sauvegarder tes graphs successif par les fonction pdf() ou encore jpeg(), regardes les aides correspondantes.

nik
Bavard
Bavard

Nombre de messages : 57
Niveau et domaine de formation : Doctorat Ecologie
Etablissement : UCB Lyon1
Date d'inscription : 22/09/2008

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Lun 13 Juil - 16:15

Re tout le monde, en fait mes lots portent chacun un numero bien précis (ex: Lot 1: J918WID, Lot 2: J919VRA, Lot 3=J917KPO, .....) ceux-ci étant rangés par ordre chronologique.
Cependant, lorsque je trace mes graphes, R affiche les lots en abscisse mais ils sont rangés par ordre alphabétique, du coup tout est faussé car je souhaiterais suivre mon graphe par ordre chronologique et non pas par ordre alphabétique comme le fait R de manière systématique.

Qqn aurait-il une solution pour forcer R à ne pas effectuer le tri par ordre alphabétique ?

Merci
Did

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  did10 Mer 15 Juil - 15:11

Nik elle est passée ou ta réponse ? i me semblait ke tavais répondu ...

did10
timide
timide

Nombre de messages : 15
Age : 38
Niveau et domaine de formation : Master 2 Statistiques
Etablissement : UFR ST Besançon
Date d'inscription : 03/06/2009

Revenir en haut Aller en bas

Aide_Sélection_Données_Sous_R Empty Re: Aide_Sélection_Données_Sous_R

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser