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
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a