[R-es] Aplicación de lapply()

Rubén Gómez Antolí lobo en mucharuina.com
Sab Nov 16 11:57:12 CET 2013


Hola:

El 15/11/13 21:32, Alejandro Ayala escribió:
> Estimados su ayuda con la ejecución del comando lapply()
>
> Tengo creada la siguiente función invertir(matriz,n) que me permite cambiar
> la posición de los elementos de una matriz.
>
> invertir<-function(Matriz,n){
>    a<-Matriz
>    b<-matrix(c(rep(0,n*n)),n,n)
>    c<-matrix(c(rep(0,n*n)),n,n)
>    for (i in 1:n) {b[i,]<-a[(n+1)-i,]}
>    for (j in 1:n) {c[,j]<-b[,(n+1)-j]}
>    return(c)
> }

Del código entiendo que trabajas con matrices cuadradas, ¿por qué no 
sacas directamente la dimensión en vez de pasársela?

n<-dim(Matriz)[1]

>
> matriz<-matrix(c(0,0,0,0,3,0,0,0,7,5,0,0,8,14,4,0),4,4, byrow=TRUE)
> invertir(matriz,4)
>
> Lo que necesito es aplicar la función lapply en conjunto con la funcion
> creada "invertir" a una lista en donde tengo almacenadas 19 matrices.

Si no lo he entendido mal, tienes una lista con un número determinado de 
matrices y les quieres aplicar la función invertir(), ¿no?

lista<-list(matriz,matriz,matriz)
lapply(lista,function(x) invertir(x,4))

No te creas que domino perfectamente a apply y sus derivados, pero creo 
que con eso se soluciona.

Salud y Revolución.

Lobo.
-- 
Libertad es poder elegir en cualquier momento. Ahora yo elijo GNU/Linux,
para no atar mis manos con las cadenas del soft propietario.
Porque la libertad no es tu derecho, es tu responsabilidad.
http://www.mucharuina.com
---------
Desde El Ejido, en Almería, usuario registrado Linux #294013
http://www.counter.li.org



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