[R] how Can make function for selecting the products
Jessica Streicher
j.streicher at micromata.de
Tue Nov 6 14:25:52 CET 2012
If i understand this correctly, what you want to use is a vector or a list as a parameter to that function.
getdata<-function(letterVec){
...
query<-paste("SELECT *FROM myfile1 where MODEL in", sqlListFromVector(letterVec))
...
}
sqlListFromVector<-function(v){
if(is.numeric(v)){
help<-paste(v,sep="",collapse=",")
}
else{
help<-paste("'",v,"'",sep="",collapse=",")
}
result<-paste("(",help,")",sep="")
return(result)
}
Then you can put any character or number in letterVec, e.g.
letterVec<-c("a","b","c")
getdata(letterVec)
does that help?
On 06.11.2012, at 13:13, Tammy Ma wrote:
>
> HI.
>
> I make this code:
>
> getdata<-function('a','b','c' ,'d','e','f'){
>
> drv <- dbDriver("SQLite")
> con<-dbConnect(drv, "sqlite.db")
>
> lt<-dbListTables(con)
>
> myf<-data.frame(NULL)
>
> for (i in 1:length(lt))
>
> {
> myfile<-dbReadTable(con,lt[i])
> myfile1<-myfile[-c(14:44)]
> myfile1$MODEL<-gsub(" ", "", myfile1$MODEL)
> library(RSQLite)
> library(sqldf)
> my_file<-sqldf("SELECT *
> FROM myfile1 where MODEL in ('a','b','c' ,'d','e','f')")
> my.file.spes<-conv(my_file)
> myf<-rbind(myf,my.file.spes)
>
> }
> wd<-myf[order(myf$Product, myf$Time),]
> wd1<-wd[!duplicated(wd),]
> wd2<-as.data.frame(as.matrix(wd1),stringsAsFactors = FALSE)
> wd3<-transform(wd2, Price = as.numeric(Price),
> Volume = as.numeric(Volume))
>
> dbDisconnect(con)
>
> return(wd3)
>
> }
>
>
> I want this program also work when I use
>
> wd3<-getdata(a,b,c,d,e,f,g,h...)
>
> for any length of my selection. How should I do this then?
>
>
> Thanks-
>
>
> Tammy
>
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list