[R-es] vectorizaciones
J. Miguel Marin
jmmarin en est-econ.uc3m.es
Lun Dic 16 17:38:16 CET 2013
Hola a tod en s,
tengo que hacer una operación con matrices que lleva un doble bucle. He
intentado vectorizarlo pero sin mucho éxito con la función "Vectorize".
¿sabríais de alguna manera de evitar los bucles o de que funcionase Vectorize?
Adjunto un ejemplo
#...................
vec1a <- as.vector(1:3)
n1a <- 3
n2a <- 3
P1a <- matrix(rnorm(30),nrow=3)
P2a <- matrix(rnorm(30),nrow=3)
Ka <- 10
# En forma de funcion
producto <- function(n1a,n2a,Ka,vec1a,P1a,P2a){
LLa = numeric(2*Ka)
for (i in 1:n1a){
for (j in 1:n2a){
LLa = LLa - vec1a%*%matrix(abs(P1a[i,]-P2a[j,]),
nrow=length(vec1a), ncol=2*Ka, byrow=TRUE)
}
}
return(sum(LLa))
}
producto(n1a,n2a,Ka,vec1a,P1a,P2a)
vproducto <- Vectorize(producto)
vproducto(n1a,n2a,Ka,vec1a,P1a,P2a)
# Error en P1a[i, ] : número incorreto de dimensiones
#...................
Y saludos
mm~
_______________________________
J. Miguel Marin
http://www.est.uc3m.es/jmmarin
Dep. de Estadistica
Universidad Carlos III de Madrid
Más información sobre la lista de distribución R-help-es