[R-es] Duda sobre construccion de vectores

Francisco Rodríguez fjroar en hotmail.com
Lun Jul 25 22:29:06 CEST 2016


Ok, muchas gracias, con vuestras soluciones resuelvo el problema, un saludo

To: cof en qualityexcellence.es; fjroar en hotmail.com
CC: r-help-es en r-project.org
From: javier.ruben.marcuzzi en 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 en 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 <fjroar en hotmail.com>escribió: > Creo que me puede valer, muchas gracias Jorge, voy a probarlo y te cuento> > From: jorgeivanvelez en gmail.com> Date: Mon, 25 Jul 2016 12:05:05 -0500> Subject: Re: [R-es] Duda sobre construccion de vectores> To: fjroar en hotmail.com> CC: r-help-es en 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 <fjroar en 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 en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es> > >         [[alternative HTML version deleted]]> > > _______________________________________________> R-help-es mailing list> R-help-es en 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 en r-project.orghttps://stat.ethz.ch/mailman/listinfo/r-help-es  		 	   		  
	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es