2011-09-25 10 views
7

ho un po 'query come questa:Come posso passare la variabile R in sqldf?

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

Ma ho "AndhraPradesh" in una variabile stateValue. Come posso usare questa variabile in una query di selezione in R per ottenere lo stesso risultato di cui sopra.

Mostrami la sintassi.

risposta

10

È possibile utilizzare sprintf:

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

io non consiglierei questo. Vedere l'esempio 5 nella home page github di sqldf per il metodo normalmente utilizzato con sqldf. –

4

Vedi Example 5 sul sqldf GitHub page.


Esempio 5. Variabili Inserire

Ecco un esempio di inserimento di variabili valutate in una query utilizzando gsubfn-perl stile quasi stringa interpolazione. gsubfn è usato da sqldf quindi è già caricato. Si noti che dobbiamo usare il fn $ prefisso per richiamare la funzionalità di interpolazione:

> 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

È anche possibile utilizzare fn$sqldf:

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

Problemi correlati