Cordial saludo. Estoy construyendo una funcion que busca en que intervalo de un vector dado se encuentra cada entrada de otro vector, busca la posicion hasta la cual la intrada "i" (i-> 1 a 1000) del vector "vec" no es mayor que la entrada "k" del vector "ic", la idea es encontrar entre que valores del vector "ic" se encuentra cada intrada del vector "vec"; la funcion que tengo funciona bien, pero la forma del algoritmo la hace lenta y no he podido encontrar una funcion propia de R que lo haga mas rapidoc(ya probe cut y equal.count); agradezco la ayuda que me puedan dar para hacer esta funcion mas efeciente o conozcan una funcion que lo haga sin necesidad de programarla. FindInter<-function() { est=numeric() ic<- c(21.0,44.4,67.8,91.2,114.6,138.0,161.4,184.8,208.2,231.6,255.0) Vec<-rnorm(1000)*50 aux=1;k=2;i=1 while(aux<=NROW(Vec)) { if(Vec[i]<=ic[k])#Busco en cual intervalo se encuetra cada entrada de Vec. { est[i]=k-1 aux=aux+1 i=i+1 k=1 } k=k+1 } est } Salu2. ANDRÉS FELIPE FLÓREZ RIVERA UNIVERSIDAD NACIONAL DE COLOMBIA ESTADISTICA 2010 [[alternative HTML version deleted]]
Andres, Creo que la funcion ?findInterval puede ayudarte. Un saludo, Jorge.- 2012/1/21 ANDRÉS FELIPE FLÓREZ RIVERA <>> > Cordial saludo. > Estoy construyendo una funcion que busca en que intervalo de un vector > dado se encuentra cada entrada de otro vector, busca la posicion hasta la > cual la intrada "i" (i-> 1 a 1000) del vector "vec" no es mayor que la > entrada "k" del vector "ic", la idea es encontrar entre que valores del > vector "ic" se encuentra cada intrada del vector "vec"; la funcion que > tengo funciona bien, pero la forma del algoritmo la hace lenta y no he > podido encontrar una funcion propia de R que lo haga mas rapidoc(ya probe > cut y equal.count); agradezco la ayuda que me puedan dar para hacer esta > funcion mas efeciente o conozcan una funcion que lo haga sin necesidad de > programarla. > > > FindInter<-function() > { > est=numeric() > ic<- c(21.0,44.4,67.8,91.2,114.6,138.0,161.4,184.8,208.2,231.6,255.0) > Vec<-rnorm(1000)*50 > aux=1;k=2;i=1 > while(aux<=NROW(Vec)) > { > if(Vec[i]<=ic[k])#Busco en cual intervalo se encuetra cada > entrada de Vec. > { > est[i]=k-1 > aux=aux+1 > i=i+1 > k=1 > } > k=k+1 > } > est > } > > > Salu2. > > ANDRÉS FELIPE FLÓREZ RIVERA > UNIVERSIDAD NACIONAL DE COLOMBIA > ESTADISTICA 2010 > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]
Andres, Concretamente necesitas res <- findInterval(Vec, sort(ic)) res[res == 0] <- 1 res La linea res[...] es necesaria para que los resultados de FindInter y findInterval coincidan. Feliz fin de semana, Jorge.- 2012/1/21 Jorge I Velez <>> Andres, > > Creo que la funcion ?findInterval puede ayudarte. > > Un saludo, > Jorge.- > > > 2012/1/21 ANDRÉS FELIPE FLÓREZ RIVERA <> > >> >> Cordial saludo. >> Estoy construyendo una funcion que busca en que intervalo de un vector >> dado se encuentra cada entrada de otro vector, busca la posicion hasta la >> cual la intrada "i" (i-> 1 a 1000) del vector "vec" no es mayor que la >> entrada "k" del vector "ic", la idea es encontrar entre que valores del >> vector "ic" se encuentra cada intrada del vector "vec"; la funcion que >> tengo funciona bien, pero la forma del algoritmo la hace lenta y no he >> podido encontrar una funcion propia de R que lo haga mas rapidoc(ya probe >> cut y equal.count); agradezco la ayuda que me puedan dar para hacer esta >> funcion mas efeciente o conozcan una funcion que lo haga sin necesidad de >> programarla. >> >> >> FindInter<-function() >> { >> est=numeric() >> ic<- >> c(21.0,44.4,67.8,91.2,114.6,138.0,161.4,184.8,208.2,231.6,255.0) >> Vec<-rnorm(1000)*50 >> aux=1;k=2;i=1 >> while(aux<=NROW(Vec)) >> { >> if(Vec[i]<=ic[k])#Busco en cual intervalo se encuetra cada >> entrada de Vec. >> { >> est[i]=k-1 >> aux=aux+1 >> i=i+1 >> k=1 >> } >> k=k+1 >> } >> est >> } >> >> >> Salu2. >> >> ANDRÉS FELIPE FLÓREZ RIVERA >> UNIVERSIDAD NACIONAL DE COLOMBIA >> ESTADISTICA 2010 >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >[[alternative HTML version deleted]]