[R-es] Calculos matrices diferentes tamaños
David Contreras
davidcontreras00 en gmail.com
Lun Mar 9 15:40:19 CET 2015
Buen Día Jorge,
Es algo parecido a lo que necesito, pero no debo tener en cuenta la suma de
la columna sino por ejemplo:
Tengo el elemento [1,2] en la matriz A que contiene el número 5 y por otra
parte tengo la columna [,2] de la Matriz B con valores por ejemplo
(1,2,3,4,5,6,7,8,9,10,11,12). El resultado debería ser un vector que en la
posición uno debe indicar que existen 7 valores mayores a 5 en la columna
[,2] de la matriz B en comparación con el elemento [1,2] e la Matriz A.
Espero ser muy claro ya que a veces se torna un poco complicado la
explicación de lo que se quiere programar.
Saludos,
David Contreras.
El 9 de marzo de 2015, 1:12, Jorge I Velez <jorgeivanvelez en gmail.com>
escribió:
> Hola David,
>
> Si entiendo correctamente, lo siguiente deberia hacer lo que describes:
>
> set.seed(123)
> A <- matrix(rpois(20, 4), ncol = 4)
> B <- matrix(rpois(274*3, 4), ncol = 3)
>
> # el resultado es una matriz de orden 5x3
> sapply(1:ncol(B), function(.col) sapply(A[, .col + 1], function(x) sum(x >
> B[, .col])))
>
> # [,1] [,2] [,3]
> #[1,] 5 253 243
> #[2,] 112 119 69
> #[3,] 243 164 3
> #[4,] 112 119 69
> #[5,] 112 18 260
>
> Este resultado indica que el elemento A[1, 2] es 5 veces mayor que todos
> los elementos de B[,1]; A[2, 2] es 112 veces mayor; A[3,2] es 243
> veces mayor; A[4,2] es 112 veces mayor y finalmente que A[5,2] es 112
> veces mayor que B[, 1]. Similarmente, A[5, 4] es 260 veces mayor que
> los elementos de B[,3].
>
> Un por uno seria algo como
>
> R> sapply(A[,2], function(x) sum(x > B[,1]))
> [1] 5 112 243 112 112
> R> sapply(A[,3], function(x) sum(x > B[,2]))
> [1] 253 119 164 119 18
> R> sapply(A[,4], function(x) sum(x > B[,3]))
> [1] 243 69 3 69 260
>
> Saludos cordiales,
> Jorge.-
>
>
> 2015-03-09 16:04 GMT+11:00 David Contreras <davidcontreras00 en gmail.com>:
>
>> Buen día amigos,
>>
>> Antes que nada, reitero mis agradecimientos por sus respuestas tan
>> precisas
>> y oportunas, sigo en mi trabajo de grado y tengo dificultad con un
>> proceso:
>>
>> Tengo dos matrices A y B, A es de dimensión 5x4 y B es de dimensión 274x3.
>> Requiero de un proceso en el que tome el primer elemento de la Matriz A
>> columna 2 y lo compare con todos los elementos de la Matriz B columna 1 y
>> me diga en un vector de dimensión (1x5) cuantas veces fue el elemento de A
>> mayor que cada uno de los 274 elementos de B y asi hasta llegar a los 5
>> elementos de A, es decir el resultado de este proceso sera un vector con 5
>> elementos y en cada uno me dice cuentas veces fue mayor el elemento [i,j]
>> mayor que los 274 elementos de B.
>>
>> Agradezco su colaboración con el tema que como siempre es muy valiosa.
>>
>>
>> Saludos,
>>
>> David Contreras.
>>
>> [[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]]
Más información sobre la lista de distribución R-help-es