[R-sig-DB] [R] Argument to database

Sean Davis @d@v|@2 @end|ng |rom m@||@n|h@gov
Thu Oct 28 15:13:21 CEST 2010


On Thu, Oct 28, 2010 at 9:06 AM, Nilza BARROS <nilzabarros using gmail.com> wrote:

> Dear R users,
>
> Thanks Sean for your idea. But since  I am getting used to using R in my
> all  tasks I 'd like to know if the Rusers can show me a better way to use
> arguments in Rscript or if the way I had applied (below here and  in my
> previous email)  the arguments is correct.
>  What I used it the same way I am used to writing in my shell scripts.
>
>
Ah.  This would better have been written to R-help, as it has nothing to do
with databases.  However, it is a pretty simple answer.  Look at the
optparse and getopt packages on CRAN.

Sean


> I really hope someone can help me.
> Thanks in advance
>
> *Below here the way I check the number of arguments. I am used to doing
> that in my shell scripts.*
>
> ==================
> #! /usr/bin/Rscript --vanilla
> args <- commandArgs(TRUE)
>
> if (length(args)!=4 )
> {
> print("********************************************")
> print("Enter the arguments   Model (20,21,...) - Trim(01,02,03,04) - Year
> (AAAA)")
> print("********************************************")
> stop("Incorrect arguments length")
> }
> npt.freq <- args[1]
> npt.trim <-args[2]
> npt.ano <- args[3]
>
>
>
> Nilza Barros
>
> On Tue, Oct 26, 2010 at 8:11 PM, Sean Davis <sdavis2 using mail.nih.gov> wrote:
>
>>
>>
>> On Tue, Oct 26, 2010 at 3:23 PM, Nilza BARROS <nilzabarros using gmail.com>wrote:
>>
>>> Dear Rusers,
>>>
>>> I am using Rscript and I'd like to use arguments as an input.
>>> I need it because I will use these arguments to consult Mysql  Databse
>>> using
>>> (SELECT) .
>>> I need different select to each Model Type and date.
>>>
>>> ./GrafDens.R [ModelType trim date ]
>>>
>>> The script I am using it is working but I'd like to know if there is
>>> something more efficient.
>>>
>>>
>>> Below here what  I am using:
>>> ==================
>>> #! /usr/bin/Rscript --vanilla
>>> args <- commandArgs(TRUE)
>>>
>>> if (length(args)!=4 )
>>> {
>>> print("********************************************")
>>> print("Enter the arguments   Model (20,21,...) - Trim(01,02,03,04) - Year
>>> (AAAA)")
>>> print("********************************************")
>>> stop("Incorrect arguments length")
>>> }
>>> npt.freq <- args[1]
>>> npt.trim <-args[2]
>>> npt.ano <- args[3]
>>>
>>>
>>> MES1.00 <- paste(npt.ano,npt.mes,"__","00",sep="")
>>> MES2.00 <- paste(npt.ano,npt.mes,"__","00",sep="")
>>> MES3.00 <- paste(npt.ano,npt.mes,"__","00",sep="")
>>>
>>>
>>> ===How I use the strings above to SELECT my data:
>>>
>>>
>> You could consider using sprintf() to generate your SQL string, as well.
>>
>>
>>>  drv=dbDriver("MySQL")
>>> con=dbConnect(drv,dbname='xxx',user='xx',password='xx')
>>> dados <- dbGetQuery(con,paste("SELECT
>>> OBS_StationNo as station_no,
>>> OBS_date as obsdate,
>>> FCT_fdate as fdate,
>>> FCT_mtype as fct_mtype,
>>> FCT_mrun as  fct_mrun,
>>> FROM VWFct_Obs
>>> WHERE
>>> FCT_mtype=",npt.mtype,
>>> " AND OBS_StationNo <> 'NULL'
>>> AND (FCT_fdate LIKE  ",  paste("'",MES1.00,"'",sep=""),
>>> " OR FCT_fdate LIKE  ", paste("'",MES1.12,"'",sep=""),
>>> " OR  FCT_fdate LIKE ", paste("'",MES2.00,"'",sep=""),
>>> " OR  FCT_fdate LIKE ", paste("'",MES2.12,"'",sep=""),
>>> " OR  FCT_fdate LIKE ", paste("'",MES3.00,"'",sep=""),
>>> "OR  FCT_fdate LIKE  " ,paste("'",MES3.12,"'",sep="")," )" ,sep=""))
>>> #
>>> ====================
>>> --
>>> Abra��o,
>>> Nilza Barros
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>>
>>
>
>
> --
> Abra��o,
> Nilza Barros
>

	[[alternative HTML version deleted]]




More information about the R-sig-DB mailing list