Reemplace rbind en for-loop con lapply? (Segundo círculo del infierno)

Tengo problemas para optimizar un fragmento de código R. El siguiente código de ejemplo debería ilustrar mi problema de optimización:

Algunas inicializaciones y una definición de función:

a <- c(10,20,30,40,50,60,70,80)
b <- c(“a”,”b”,”c”,”d”,”z”,”g”,”h”,”r”)
c <- c(1,2,3,4,5,6,7,8)
myframe <- data.frame(a,b,c)
values <- vector(length=columns)
solution <- matrix(nrow=nrow(myframe),ncol=columns+3)

myfunction <- function(frame,columns){
athing = 0
   if(columns == 5){
   athing = 100
   }
   else{
   athing = 1000
   }
value[colums+1] = athing
return(value)}

El problemático for-loop se ve así:

columns = 6
for(i in 1:nrow(myframe){
   values <- myfunction(as.matrix(myframe[i,]), columns)
   values[columns+2] = i
   values[columns+3] = myframe[i,3]
   #more columns added with simple operations (i.e. sum)

   solution <- rbind(solution,values)
   #solution is a large matrix from outside the for-loop
}

El problema parece ser elrbind función. Frecuentemente recibo mensajes de error con respecto al tamaño desolution que parece ser demasiado grande después de un tiempo (más de 50 MB). Quiero reemplazar este bucle y elrbind con una lista ylapply y / o foreach. He empezado a convertirmyframea una lista

myframe_list <- lapply(seq_len(nrow(myframe)), function(i) myframe[i,])

Realmente no he llegado más lejos que esto, aunque intenté aplicar estomuy buena introducción al procesamiento paralelo.

¿Cómo debo reconstruir el bucle for sin tener que cambiarmyfunction? Obviamente estoy abierto a diferentes soluciones ...

Editar: este problema parece ser directo delSegundo círculo del infierno desde el Infierno R. ¿Alguna sugerencia?

Respuestas a la pregunta(2)

Su respuesta a la pregunta