Foro de debate

Argumentos en R

Argumentos en R

de Ignacio Martinez -
Número de respuestas: 4

Buenas, me gustaria exponeros un duda.Se puede de alguna forma introducir en R argumentos de entrada?Es decir,yo tengo un sript hecho en R de esta forma:

Invernadero<-read.table("C:\\Temp\\entrada8.txt",header=T,sep=",")

attach(Invernadero)

names(Invernadero)

Invernadero<-ts(Invernadero<-Temp..Ext)

plot(Hora,Invernadero,main="Temperatura Ext. Invernadero",xlab="Tiempo",ylab="Temperatura Ext.")

El cual lee de un archivo que contiene varias columnas como Temperatura,Humedad,etc entonces crea una serie temporal y luego la muestra.Este script lo ejecuto desde la consola mediante una aplicacion que he creado en Java,pero claro de esta forma siempre crea la serie temporal con la variable "Temp. .Ext" pero si yo quiero luego que la cree con otra variable como por ejemplo "Humedad" no puedo.Entonces mi duda es puedo yo pasarle por parametro la variable a la cual quiero que cree la serie temporal? algo parecido a cmd /start C.//miScript(variable).R,pero ignoro como hacerlo.

Muchas gracias de antemano y perdonan el pedazo de post.

Un saludo.

En respuesta a Ignacio Martinez

Re: Argumentos en R

de Ignacio Martinez -

edito:o no se lo mismo hay alguna forma si de esta no se puede que conforme vaya ejecutando el script me pida que variable es la que quiero que utilice como serie temporal,no seria igual de buena ya que se supone que antes de ejecutar el script yo ya se que variable ha escogido el usuario pero si de la forma anterior no se puede...A ver si podeis echarme una mano.

En respuesta a Ignacio Martinez

Re: Argumentos en R

de Franz Jimeno -
Hola Ignacio,

puedes utilizar una especie de menú. R preguntará al inicio qué variable quieres utilizar.

Por ejemplo, guardas este código en un script y lo ejecutas con "source("NombreDelScript")":

cat ("1 - Humedad\n")
cat ("2 - Temperatura\n")
seleccion <- readline(prompt="\nSelecciona la variable: ")

if (seleccion=="1") {
Invernadero<-ts(Invernadero<-Hum..Ext)
titulo <- "Humedad exterior invernadero"
ejeX <- "Tiempo"
ejeY <- "Humedad Ext."
}

if (seleccion=="2") {
Invernadero<-ts(Invernadero<-Temp..Ext)
titulo <- "Temperatura exterior invernadero"
ejeX <- "Tiempo"
ejeY <- "Temper. Ext."
}

plot(Hora,Invernadero,main=titulo,xlab=ejeX,ylab=ejeY)


Lo he hecho sobre la marcha, sin comprobar si funciona, pero espero que no haya ningún error.

Un saludo,


Franz


En respuesta a Franz Jimeno

Re: Argumentos en R

de Ignacio Martinez -

Hola,en primer lugar muchas gracias por tu respuesta.Pero se supone que cuando llamo al script desde mi aplicacion el usuario ya ha elegido la variable...No se si me explico,es decir tengo un listado con las variables en una area de texto: "temperatura","humedad",etc, una vez elegida lanzo el script, es decir que ya tengo elegida la variable, entonces deberia saber ya el escript que variable utilizar,a unas malas directamente repetirlo otra vez,es decir que al lanzar el script ponerle yo otra vez la variable elegida, puedo yo con el readline() que tu has utilizado introducirle la variable y luego pasarsela ts??Espero que me haya explicado bien...

Pongo mas o menos lo que seria la segunda forma:

variable<-readline(prompt="\n Introduce la variable: ")

//aqui introducirle yo por teclado la variable

//y luego pasarsela a ts

Invernadero<-ts(Invernadero<-variable)

Pero no se si eso se puede hacer o si existe.

Un saludo y gracias de nuevo,

Ignacio.

edito:lo ejecuto desde la consola de windows...lo mismo lo del prompt no funciona no?¿

En respuesta a Franz Jimeno

Re: Argumentos en R

de Ignacio Martinez -

Hola, he probado lo que me comentaste,pero se ve que al ejecutarlo por consola de windows se sale cuando llega al readline...hay alguna manera de cambiar lo del prompt para que sepa que la consola de windows y no la de R?

Un saludo y gracias.

edito: lo he probado con source tambien pero para esto otro que necesito

cat("1- 24horas\n")

cat("2- 12horas\n")

cat("3- 8horas\n")

seleccion<-readline(prompt="\nSelecciona numero de horas:")

if(seleccion=="1"){

prediccion=exp(x.reconstruida[1441:1450])

}

if(seleccion=="2"){

prediccion=exp(x.reconstruida[720:729])

}

if(seleccion=="3"){

prediccion=exp(x.reconstruida[481:491])

}

write.table(prediccion,"C:\\Temp\\prePrueba.txt",quote=F,row.names=F,append=T,col.names=F)

Me muestra lo de selecciona el numero de horas pero no sigue...Estaran mal los if?