2011-09-25 24 views
7

tengo alguna consulta como esta:¿Cómo puedo pasar la variable R a sqldf?

sqldf("select TenScore from data where State_P = 'AndhraPradesh'") 

Pero tengo "AndhraPradesh" en una variable stateValue. ¿Cómo puedo usar esta variable en una consulta de selección en R para obtener el mismo resultado que el anterior?

Por favor muéstrame la sintaxis.

Respuesta

10

Puede utilizar sprintf:

sqldf(sprintf("select TenScore from data where State_P = '%s'", stateValue)) 
+0

Yo no recomendaría este. Vea el Ejemplo 5 en la página de inicio de sqldf github para el método normalmente usado con sqldf. –

4

Ver Example 5 en el sqldf GitHub page.


Ejemplo 5. Variables Insertar

Aquí es un ejemplo de la inserción de variables evaluadas en una consulta utilizando gsubfn interpolación cadena-estilo Perl cuasi. gsubfn es utilizado por sqldf, por lo que ya está cargado. Tenga en cuenta que hay que utilizar el fn $ prefijo para acceder a la función de interpolación:

> minSL <- 7 
> limit <- 3 
> species <- "virginica" 
> fn$sqldf("select * from iris where \"Sepal.Length\" > $minSL and species = '$species' limit $limit") 

    Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
1   7.1   3.0   5.9   2.1 virginica 
2   7.6   3.0   6.6   2.1 virginica 
3   7.3   2.9   6.3   1.8 virginica 
1

También puede utilizar fn$sqldf:

fn$sqldf("select TenScore from data where State_P = '$stateValue'")

Cuestiones relacionadas