Ok, muchas gracias, con vuestras soluciones resuelvo el problema, un saludo
To: c...@qualityexcellence.es; fjr...@hotmail.com CC: r-help-es@r-project.org From: javier.ruben.marcu...@gmail.com Subject: RE: [R-es] Duda sobre construccion de vectores Date: Mon, 25 Jul 2016 15:32:45 -0300 Estimado Francisco Hay una forma as.vector, por ejemplo (luego puedes usar como ya le suguieren): > x <-c(1,2,3,4)> y <-c(8,9,9,7)> z <- data.frame(x,y)> z x y1 1 82 2 93 3 94 4 7> as.vector(z) x y1 1 82 2 93 3 94 4 7> w <- as.vector(z)> w[1] x1 12 23 34 4> Javier Rub�n Marcuzzi De: Carlos Ortega Enviado: lunes, 25 de julio de 2016 14:30 Para: Francisco Rodr�guez CC: r-help-es@r-project.org Asunto: Re: [R-es] Duda sobre construccion de vectores Hola Francisco, Esta es otra forma, > M[ as.matrix(data.frame(i = 1:length(index), j = index))][1] 4 7 8 Saludos,Carlos Ortegawww.qualityexcellence.es El 25 de julio de 2016, 19:06, Francisco Rodr�guez <fjr...@hotmail.com>escribi�: > Creo que me puede valer, muchas gracias Jorge, voy a probarlo y te cuento> > From: jorgeivanve...@gmail.com> Date: Mon, 25 Jul 2016 12:05:05 -0500> Subject: Re: [R-es] Duda sobre construccion de vectores> To: fjr...@hotmail.com> CC: r-help-es@r-project.org> > Buenas tardes, Francisco.> Quiz�s no sea la manera mas eficiente, pero proporciona el resultado que> buscas:> R> M <- matrix(c(2,3,3,4,5,6,7,7,8,11,10,5), nrow = 3, ncol = 4)R> index> <- c(2,3,3)R> sapply(1:NROW(M), function(.row) M[.row,][index[.row]])[1] 4> 7 8> Saludos,Jorge.-> > > > 2016-07-25 11:54 GMT-05:00 Francisco Rodr�guez <fjr...@hotmail.com>:> Hola buenas tardes comunidad, seguro que hay algo f�cil, pero se me escapa> y es que estoy hoy algo torpe seguramente, a ver me gustar�a hacer lo> siguiente:> > Dada una matriz M (que puede ser muy grande), me gustaria crear un vector,> sin usar bucles (ya que cuando es muy grande, todo puede ser muy lento) del> siguiente modo.> > Para cada una de sus filas, me gustar�a seleccionar un �nico elemento de> una columna dada por otro vector, as� por ejemplo:> > -Si la matriz de partida es:> > M <- matrix(c(2,3,3,4,5,6,7,7,8,11,10,5), nrow = 3, ncol = 4)> > -As� pues se tiene que:> > M> > [,1] [,2] [,3] [,4][1,] 2 4 7 11[2,] 3 5 7> 10[3,] 3 6 8 5> > -Y el vector indicador es:> > Indicador <- c(2,3,3)> > -Me gustar�a tener una nuevo vector, cuyos componentes fueran (si el> vector se llamase Resultado) los siguientes:> > Resultado{1} 4 7 8> > -Es decir ser�a la segunda componente del primer registro, la tercera> componente del segundo registro y la tercera componente del tercer registro> > -No recuerdo si se digo hace tiempo algo de con la librer�a data.table, me> da igual tener que usar cualquier librer�a, pero el tema es tratar de hacer> que sea una operaci�n vectorial que por ejemplo evite un bucle tal como:> > Resultado <- vector("numeric", 3)> > for (i in (1:3)){> > Resultado[i] = M[i, Indicador[i]]}> > -El cu�l, como he comentado ser�a lento si el n�mero de filas de matriz> fuese muy elevado> > Un saludo y muchas gracias> > [[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]]> > > _______________________________________________> R-help-es mailing list> R-help-es@r-project.org> https://stat.ethz.ch/mailman/listinfo/r-help-es> -- Saludos,Carlos Ortegawww.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________R-help-es mailing listR-help-es@r-project.orghttps://stat.ethz.ch/mailman/listinfo/r-help-es [[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es