Cómo poner una aplicación equivalente a cualquier bucle for.

La mayoría de los usuarios de Pro R me han recomendado que nunca use bucles en R. En su lugar, utilice las funciones de aplicación. El problema es que no es tan intuitivo escribir un equivalente de aplicación para cada bucle for / while si no está familiarizado con la programación funcional. Tome el siguiente ejemplo, por ejemplo.

F <- data.frame(name = c("a", "b", "c", "d"), var1 = c(1,0,0,1), var2 = c(0,0,1,1),  
var3 = c(1,1,1,1), clus = c("one", "two", "three", "four"))
F$ObjTrim <- ""
for (i in 1:nrow(F))
{
 for (j in 2:(ncol(F)-1))
{
 if(F[i, j] == 1) 
 {F$ObjTrim[i]  <- paste(F$ObjTrim[i], colnames(F)[j], sep = " ") }

 }
  print(i)
}

El objetivo aquí es crear una variable "ObjTrim" que tome el valor de todos los nombres de columna que tienen un valor == 1. ¿Puede alguien sugerir que se aplique un buen equivalente a esto?

El código anterior, por ejemplo, dará:

 name var1 var2 var3  clus         ObjTrim
1    a    1    0    1   one       var1 var3
2    b    0    0    1   two            var3
3    c    0    1    1 three       var2 var3
4    d    1    1    1  four  var1 var2 var3

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta