Jose Luis Cañadas Reche
2016-Oct-29 17:09 UTC
[R-es] pasar argumentos de consola a un script de R que contiene source
Hola. Tengo un script con la siguiente estructura. #!/usr/bin/env Rscript args = commandArgs(trailingOnly=TRUE) source("carga-datos.R") source("modelo.R") y quiero llamar a mi script desde consola con Rscript --vanilla miscript.R datos1.csv De forma que se guarde como argumento el nombre del fichero que quiero cargar y se pase a al script carga-datos.R. El problema es que aunque si guarda datos1.csv en el objeto args , parece que "carga-datos.R" no lo ve, no sé si es que no está en el global environment. ¿Alguna idea de cómo resolverlo? Gracias. Un saludo. José Luis Cañadas
Carlos Ortega
2016-Oct-29 17:39 UTC
[R-es] pasar argumentos de consola a un script de R que contiene source
Hola José Luis, Mira esto: http://stackoverflow.com/questions/22412620/define-global-variable-using-function-argument-in-r http://stackoverflow.com/questions/1236620/global-variables-in-r Gracias, Carlos Ortega www.qualityexcellence.es El 29 de octubre de 2016, 19:09, Jose Luis Cañadas Reche < canadasreche en gmail.com> escribió:> Hola. > > Tengo un script con la siguiente estructura. > > #!/usr/bin/env Rscript > args = commandArgs(trailingOnly=TRUE) > > source("carga-datos.R") > > source("modelo.R") > > > y quiero llamar a mi script desde consola con > > Rscript --vanilla miscript.R datos1.csv > > De forma que se guarde como argumento el nombre del fichero que quiero > cargar y se pase a al script carga-datos.R. El problema es que aunque si > guarda datos1.csv en el objeto args , parece que "carga-datos.R" no lo ve, > no sé si es que no está en el global environment. ¿Alguna idea de cómo > resolverlo? Gracias. > > > Un saludo. > > José Luis Cañadas > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2016-Oct-29 18:35 UTC
[R-es] pasar argumentos de consola a un script de R que contiene source
Hola, ¿qué tal? Cuando ejecutas miscript.R, el nombre del fichero de datos, "datos1.csv" está en args[1]. Posiblemente, "carga-datos.R" espere el nombre del fichero en una variable tal como mi.fichero. En tal caso tendrías que asignar mi.fichero <- args[1] antes de los _sources_. Un saludo, Carlos J. Gil Bellosta http://www.datanaytics.com El 29 de octubre de 2016, 19:09, Jose Luis Cañadas Reche < canadasreche en gmail.com> escribió:> Hola. > > Tengo un script con la siguiente estructura. > > #!/usr/bin/env Rscript > args = commandArgs(trailingOnly=TRUE) > > source("carga-datos.R") > > source("modelo.R") > > > y quiero llamar a mi script desde consola con > > Rscript --vanilla miscript.R datos1.csv > > De forma que se guarde como argumento el nombre del fichero que quiero > cargar y se pase a al script carga-datos.R. El problema es que aunque si > guarda datos1.csv en el objeto args , parece que "carga-datos.R" no lo ve, > no sé si es que no está en el global environment. ¿Alguna idea de cómo > resolverlo? Gracias. > > > Un saludo. > > José Luis Cañadas > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Jose Luis Cañadas Reche
2016-Oct-30 12:17 UTC
[R-es] pasar argumentos de consola a un script de R que contiene source
Gracias a los dos. En realidad no hacía falta asignar al global environment ni hacer mi.fichero <- args[1]. El problema es que no me había dado cuenta que en el "carga-datos.R" había un rm(list=ls()) escondido antes de leer el fichero, culpa mía.:- Un saludo. El 29/10/16 a las 20:35, Carlos J. Gil Bellosta escribió:> Hola, ¿qué tal? > > Cuando ejecutas miscript.R, el nombre del fichero de datos, > "datos1.csv" está en args[1]. > > Posiblemente, "carga-datos.R" espere el nombre del fichero en una > variable tal como mi.fichero. En tal caso tendrías que asignar > > mi.fichero <- args[1] > > antes de los _sources_. > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanaytics.com > > > El 29 de octubre de 2016, 19:09, Jose Luis Cañadas Reche > <canadasreche en gmail.com <mailto:canadasreche en gmail.com>> escribió: > > Hola. > > Tengo un script con la siguiente estructura. > > #!/usr/bin/env Rscript > args = commandArgs(trailingOnly=TRUE) > > source("carga-datos.R") > > source("modelo.R") > > > y quiero llamar a mi script desde consola con > > Rscript --vanilla miscript.R datos1.csv > > De forma que se guarde como argumento el nombre del fichero que > quiero cargar y se pase a al script carga-datos.R. El problema es > que aunque si guarda datos1.csv en el objeto args , parece que > "carga-datos.R" no lo ve, no sé si es que no está en el global > environment. ¿Alguna idea de cómo resolverlo? Gracias. > > > Un saludo. > > José Luis Cañadas > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > <https://stat.ethz.ch/mailman/listinfo/r-help-es> > >[[alternative HTML version deleted]]