logiciel R: pb somme de vecteurs

logiciel R: pb somme de vecteurs - Divers - Programmation

Marsh Posté le 14-02-2005 à 18:44:29    

Bonjour,
J'utilise le logiciel R (version 2.0.0) et j'ai un problème avec la fonction suivante:
 
simudis=function(N,p)  
{
 X=runif(N,0,1);
 k=length(p);
 a=matrix(0,nrow=k,ncol=N) ;
 s=rep(0,k);
 s[1]=p[1];
 for (i in 2:k)  s[i]=p[i]+s[i-1];
 a[1,]=1*(X < s[1]);
 a[k,]=k*(X >= s[k-1]);
 for (i in 2:k-1) a[i,]=i*((X >= s[i-1]) & (X < s[i]));
 va=vector(N,mode="numeric" );
 
 for (i in 1 :N)  
 {for (j in 1:k)
 va[i]=va[i]+a[j,i];
 }
 va ;
}  
 
Si je teste la commande simudis(100,c(0.2,0.5,0.3)), j'obtiens bien la matrice A souhaitée (qui contient des 0,1,2 et 3). Le problème se trouve dans les dernières lignes (sans doute les 2 for), le but de ce programme étant de retourner un vecteur va qui contient la somme des vecteurs-lignes de la matrice A.
 
Pour information, voici ce que le logiciel me retourne quand je lance la commande simudis(100,c(0.2,0.5,0.3)):
 
> simudis(100,c(0.2,0.5,0.3))
Error in "[<-"(`*tmp*`, i, , value = i * ((X >= s[i - 1]) & (X < s[i]))) :  
        nothing to replace with
 
 
Pourriez-vous m'aider à résoudre ce problème ?
Je vous remercie d'avance.

Reply

Marsh Posté le 14-02-2005 à 18:44:29   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed