Als ich die Hilfeseite der Scheibe Funktion des dplyr Pakets zu verstehen, kann man die Zeilen eines SQL-TBL oder einen SQLite-TBL wie folgt wählen:Wie extrahiert man eine Teilmenge eines tbl_mysql oder tbl_sqlite Datenrahmens nach Zeilennummern?
filter(mtcars, row_number() == 1L)
aber ich erhalte eine Fehlermeldung, wenn ich versuche:
dat1 <- data.frame(
Name = c("Joe", "Bill", "Jim", "Kate"),
Value = c(10.1, 9, 7.7, -3),
Indic = c(0L, 1L, 2L, 2L),
Status = c(TRUE, TRUE, FALSE, FALSE)
)
#### Create SQLite database ####
library(dplyr)
my_database <- src_sqlite("db_sqlite_file", create = TRUE)
#### Put data in database ####
copy_to(my_database, dat1, temporary = FALSE)
#### Connect to database ####
my_db <- src_sqlite("db_sqlite_file", create = FALSE)
#### Querying the database ####
dd <- tbl(my_db, "dat1")
ddextract <- filter(dd, row_number() == 1L)
Die Fehlermeldung tritt hier:
> ddextract
Source: sqlite 3.8.6 [db_sqlite_file]
Error in sqliteSendQuery(con, statement, bind.data) :
error in statement: no such function: ROW_NUMBER
das gleiche Problem mit MySQL:
my_db_sql <- src_mysql("mysql_dplyr", password="mypassword")
dd <- tbl(my_db_sql, "dat1")
ddextract <- filter(dd, row_number() == 1L)
Der Fehler:
> ddextract
Source: mysql 5.5.49-0ubuntu0.14.04.1 [[email protected]:/mysql_dplyr]
Error in .local(conn, statement, ...) :
could not run statement: FUNCTION mysql_dplyr.ROW_NUMBER does not exist
Natürlich kann ich eine neue Spalte mit den Zeilennummern erstellen, aber ich frage mich, warum filter(mtcars, row_number() == 1L)
funktioniert nicht.
Sie versuchte 'dplyr :: filter()'? – mtoto
Dies ist 'dplyr :: filter'. –
Sie können auch nach 'dplyr :: slice' schauen. –