¿La mejor manera de nombrar objetos mediante programación R?

Estoy ejecutando varios algoritmos de modelado en un conjunto de datos. He obtenido mejores resultados al modelar mis variables de entrada a mis respuestas de una en una, por ejemplo:

model <- train(y ~ x1 + x2 + ... + xn, ...)

Una vez que entreno a mis modelos, me gustaría no volver a ejecutarlos cada vez, por lo que he estado tratando de guardarlos como.rda archivos. Aquí hay un ejemplo de bucle para un modelo de bosque aleatorio (¡no dude en sugerir una mejor manera que un bucle!):

# data_resp contains my measured responses, one per column
# data_pred contains my predictors, one per column

for (i in 1:ncol(data_resp)) {

  model <- train(data_pred_scale[!is.na(data_resp[, i]), ],
                 data_resp[!is.na(data_resp[, i]), i],
                 method = "rf",
                 tuneGrid = data.frame(.mtry = c(3:6)),
                 nodesize = 3,
                 ntrees = 500)

  save(model, file = paste("./models/model_rf_", names(data_resp)[i], ".rda", sep = ""))

Cuando cargue el modelo, sin embargo, se va a llamarmodel.

No he encontrado una buena manera de guardar el modelo con su nombre correspondiente para intentar volver a consultarlo más tarde. Encontré que uno puede asignar un objeto a una cadena como tal:

assign(paste("./models/model_rf_", names(data_resp)[i], ".rda", sep = ""), train(...))

Pero aún me queda saber cómo referirme al objeto cuando lo guardo:

save(???, file = ...)

No sé cómo llamar al objeto por su nombre personalizado.

Por último, incluso la carga ha presentado un problema. He intentadoassign("model_name", load("./model.rda")), pero el objeto resultante, llamadostring termina simplemente sosteniendo una cadena del nombre del objeto, "modelo".

Al mirar alrededor, encontréESTA Pregunta, que parece relevante, pero estoy tratando de averiguar cómo aplicarlo a mi situación.

Podría crear una lista con los nombres de cada columna endata_resp (mis respuestas medidas) y luego usarlapply usartrain(), pero todavía estoy un poco atascado en cómo referirme dinámicamente al nuevo nombre del objeto para mantener el modelo resultante.

Respuestas a la pregunta(4)

Su respuesta a la pregunta