Hola,

El problema está en la asignación de t0<-t00[i] que tiene un ámbito de
existencia dentro de la propia función.
Si la asignación es t0<<-t00[i] entonces la asignación es al entorno y así
sí que cuando la pasas como variable a la consulta sql sí que funciona...


> > err01 <- function(){+     require(sqldf)+     t00 <- c("a","b")+     d00 <- data.frame('X'=c("a","b","c"),'Y'=c(1,2,3))+     for(i in 1:2){+         *t0 <<- t00[i]*+         res <- fn$sqldf("select * from d00 where X = '$t0'")+         print(res)+     }+ }> > err01()  X Y
1 a 1
  X Y
1 b 2



Saludos,
Carlos Ortega
www.qualityexcellence.es

El 18 de abril de 2012 17:35, Patricio Fuenmayor Viteri <
cpfuenmayor@hotmail.com> escribió:

>
> Hola a todos.He actualizado R de la version 2.14.1 a la 2.15.0 y se me
> presenta el siguiente problema.Tengo unas consultas sql usando la libreria
> sqldf que tienen incorporadas variables, algo asi:
> err01 <- function(){require(sqldf)t00 <- c("a","b")d00 <-
> data.frame('X'=c("a","b","c"),'Y'=c(1,2,3))
> for(i in 1:2){t0 <- t00[i]res <- fn$sqldf("select * from d00 where X =
> '$t0'")print(res)}}
> si ejecuto la funcion err01()  me sale el siguiente error:
> Error in eval(expr, envir, enclos) : object 't0' not found
> Pero lo curioso es que si ejecuto el código parte por parte, si sale el
> resultado.Gracias por cualquier pista que me puedan dar.Me imagino que
> tiene algo que ver con la libreria gsubfn que es utilizada por sqldf
> Atte.Patricio
>
>
>
>        [[alternative HTML version deleted]]
>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]

