Saludos me gustaria me ayuden con el siguiente problema: Tengo 2 vectores "a" y "b", el vector "a" es de valores aleatorios, el vector "b" se forma a partir de los valores de "a" por ejemplo: Supongamos que el vector aleatorio "a" es igual a: a<-round(runif(10,0,15),0) y me resulta: 5 5 14 3 5 1 10 1 2 6 Deseo que el vector "b" se componga de tal forma que cada valor de "a" se le asigne al indice de "b" (si un valor de "a"se repite estos se deben sumar y se asignen a los indices de "b") es decir: b es igual a: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #indices del vector "b" 2 1 1 0 3 1 0 0 0 1 0 0 0 1 0 # valores de "a" asignados a "b" Gracias por su ayuda [[alternative HTML version deleted]]
Alejandro, Una forma podria ser a <- c(5, 5, 14, 3, 5, 1, 10, 1, 2, 6) b <- rep(0, 15) names(b) <- 1:15 r <- table(a) b[names(b) %in% names(r)] <- r b # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 2 1 1 0 3 1 0 0 0 1 0 0 0 1 0 Un saludo, Jorge.- 2013/4/22 Alejandro Ayala <>> Saludos me gustaria me ayuden con el siguiente problema: > > Tengo 2 vectores "a" y "b", el vector "a" es de valores aleatorios, el > vector "b" se forma a partir de los valores de "a" por ejemplo: > > Supongamos que el vector aleatorio "a" es igual a: > > a<-round(runif(10,0,15),0) y me resulta: > > 5 5 14 3 5 1 10 1 2 6 > > Deseo que el vector "b" se componga de tal forma que cada valor de "a" se > le asigne al indice de "b" (si un valor de "a"se repite estos se deben > sumar y se asignen a los indices de "b") es decir: > > b es igual a: > > 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #indices del vector "b" > 2 1 1 0 3 1 0 0 0 1 0 0 0 1 0 # valores de "a" asignados a "b" > > Gracias por su ayuda > > [[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]]
Tambien podrias usar table(factor(a, levels = 1:15)) # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # 2 1 1 0 3 1 0 0 0 1 0 0 0 1 0 --JIV 2013/4/22 Jorge I Velez <jorgeivanvelez@gmail.com>> Alejandro, > > Una forma podria ser > > a <- c(5, 5, 14, 3, 5, 1, 10, 1, 2, 6) > b <- rep(0, 15) > names(b) <- 1:15 > r <- table(a) > b[names(b) %in% names(r)] <- r > b > # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 > # 2 1 1 0 3 1 0 0 0 1 0 0 0 1 0 > > Un saludo, > Jorge.- > > > 2013/4/22 Alejandro Ayala <> > > Saludos me gustaria me ayuden con el siguiente problema: >> >> Tengo 2 vectores "a" y "b", el vector "a" es de valores aleatorios, el >> vector "b" se forma a partir de los valores de "a" por ejemplo: >> >> Supongamos que el vector aleatorio "a" es igual a: >> >> a<-round(runif(10,0,15),0) y me resulta: >> >> 5 5 14 3 5 1 10 1 2 6 >> >> Deseo que el vector "b" se componga de tal forma que cada valor de "a" se >> le asigne al indice de "b" (si un valor de "a"se repite estos se deben >> sumar y se asignen a los indices de "b") es decir: >> >> b es igual a: >> >> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #indices del vector "b" >> 2 1 1 0 3 1 0 0 0 1 0 0 0 1 0 # valores de "a" asignados a "b" >> >> Gracias por su ayuda >> >> [[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]]