2016-04-25 7 views
0

Was ich will, ist:wählen Daten aus MySQL (mit for-Schleife()?) In R

m1 <- dbGetQuery(mydb, "select out,in from table where value > 1") 
m2 <- dbGetQuery(mydb, "select out,in from table where value > 1.1") 
m3 <- dbGetQuery(mydb, "select out,in from table where value > 1.2") 
m4 <- dbGetQuery(mydb, "select out,in from table where value > 1.3") 
           . 
           . 
           . 
m101 <- dbGetQuery(mydb, "select out,in from table where value > 10") 

dann

n1 <- degree(graph.data.frame(m)) 
n2 <- degree(graph.data.frame(m2) 
      . 
      . 
      . 

Ich möchte diese Codes vereinfachen mit Funktion anwenden, aber ich habe keine Ahnung:^(

+0

Die Reihenfolge von "Wert", die Sie abfragen ... ist es die vollständige Sequenz? Wenn ja, dann können Sie die Datenbank nach einem beliebigen Wert abfragen, und die Teilmenge später den Datenrahmen ... – PavoDive

Antwort

1

Hier ist eine for Loop-Lösung, die die Ergebnisse in einer Liste gespeichert:

# get list 
myList <- list() 

for(i in seq(1, 10, 0.1)) { 
    myList[[paste0("m",i)]]<- dbGetQuery(mydb, 
           paste("select out,in from table where value >", i)) 
} 

Sie können dann die Objekte aus dir Anrufliste:

n1 <- degree(graph.data.frame(myList[["m1"]])) 

und wie oben, können Sie diese Ergebnisse in einer Liste setzen können. Benannte Listen sind eine großartige Möglichkeit zum Speichern und Organisieren vieler Objekte.