Les posteurs les plus actifs de la semaine
Eric Wajnberg
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
Thosken
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
emi
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
Mytilus
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
zezima
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
Walid Act
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
c@ssoulet
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
AdrienC
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
Nik
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 
AlexandreRfst
Boucle for pour chercher le maximum dans une colonne Vote_lcapBoucle for pour chercher le maximum dans une colonne Voting_barBoucle for pour chercher le maximum dans une colonne Vote_rcap 


Boucle for pour chercher le maximum dans une colonne

Aller en bas

Boucle for pour chercher le maximum dans une colonne Empty Boucle for pour chercher le maximum dans une colonne

Message par khaoula gammoudi le Dim 2 Avr 2017 - 13:43

Bonjour,
J'ai mon tableau v pour lequel je cherche à trouver,dans une même colonne (colonne 2) et pour tout deux lignes i et j, le maximum de v[i,2] et v[j,2],
et représenter le résultat obtenu dans une matrice symétrique.
J'ai essayé avec le code suivant:
Code:

max <- function (a,b)
+ {if (a > b)
+    max <- a
+ else
+    max <- b
+ return(max)  
+    }
 
> nr <- nrow(v)
> MAX <-matrix(nr,nr)
> for(i in 1:nr){
+   for(j in 1:nr){
+     MAX[i,j]=max(v[i,2],v[j,2])
+   }
+ }
Error in `[<-`(`*tmp*`, i, j, value = 34L) : indice hors limites
J'ai pas compris l'erreur sortis par R.
Pourriez-vous m'aidez?
Merci.

khaoula gammoudi

Nombre de messages : 8
Date d'inscription : 03/02/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Boucle for pour chercher le maximum dans une colonne Empty Re: Boucle for pour chercher le maximum dans une colonne

Message par Eric Wajnberg le Dim 2 Avr 2017 - 14:38

Plusieurs points :

1) La fonction max() dans R existe déjà. Inutile de la redéfinir.

2) La fonction matrix() demande ou moins trois arguments, pas deux, et le premier définit les données. Si vraiment vous voulez utiliser deux arguments, alors il faut les nommer, ici matrix(nrow=nr,ncol=nr). C'est la source de votre erreur, je pense.

3) Vous êtes ici sur un forum de statistique. Pour ce genre de questions, je vous conseillerais plutôt d'aller sur un forum spécifique sur l'usage du logiciel R. Votre question n'est pas vraiment une question de statistique.

Cordialement, Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1008
Date d'inscription : 14/09/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Boucle for pour chercher le maximum dans une colonne Empty Re: Boucle for pour chercher le maximum dans une colonne

Message par droopy le Lun 3 Avr 2017 - 7:18

Bonjour,

je partage l'avis d'Eric sur la fonction max et les matrices. Par contre je ne le partage pas sur le côté R puisque la question est posée dans la section 'R'. Sinon autant virer ces sections.
Pour le reste je ferais plutôt comme ça pour gagner du temps par rapport à la double boucle :
Code:
# avec un exemple pour v
v <- data.frame(y = gl(2,5), z = rnorm(10))
MAX <- matrix(0, nrow(v), nrow(v))
MAX[lower.tri(MAX)] <- combn(10, 2, function(x) max(v[x,2]))
MAX <- MAX+t(MAX)
diag(MAX) <- v[,2]
Cdlt
droopy
droopy

Nombre de messages : 1119
Date d'inscription : 04/09/2009

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Boucle for pour chercher le maximum dans une colonne Empty Re: Boucle for pour chercher le maximum dans une colonne

Message par Eric Wajnberg le Lun 3 Avr 2017 - 9:14

Ok droopy. Mais je note que l'auteur de ce post a posté exactement la même question (et a d'ailleurs obtenu la même réponse) sur le forum français sur R, et ceci deux jours avant l'avoir posté ici. Je reste peu convaincu de la démarche. Mais bon, ce n'est pas très grave.

Cordialement, Eric.
Eric Wajnberg
Eric Wajnberg

Nombre de messages : 1008
Date d'inscription : 14/09/2012

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Boucle for pour chercher le maximum dans une colonne Empty Re: Boucle for pour chercher le maximum dans une colonne

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum