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