如果我想创建一个包含带数据框的观察数的新列,我可以,
mtcars %>% mutate(i=row_number())
但是row_number()不适用于sql表。
mydb <- dbConnect(RSQLite::SQLite(), "")
dbWriteTable(mydb, "mt", mtcars)
mt.sql=tbl(mydb, "mt")
mt.sql %>% mutate(i=row_number())
错误:
此数据库不支持窗口函数
row_number()
还有其他方法可以解决这个问题吗?
答案 0 :(得分:0)
你可以使用像这样的SQLite语法解决它
ERROR: /root/sdk-samples/WORKSPACE:17:12: Traceback (most recent call last):
File "/root/sdk-samples/WORKSPACE", line 15
cc_library(name = "AffectivaSources", srcs = ..."]), ..."]))
File "/root/sdk-samples/WORKSPACE", line 17, in cc_library
glob
name 'glob' is not defined
然后,您可以继续使用RSQLite::dbSendQuery(mydb, "ALTER TABLE mt ADD COLUMN i INTEGER")
RSQLite::dbSendQuery(mydb, "UPDATE mt SET (i) = ROWID")
语法,例如在从数据库连接重新分配dplyr
到mt
对象之后。
mt.sql
答案 1 :(得分:0)
SQLite不支持行号功能。
答案 2 :(得分:0)
您尝试过mtcars %>% mutate(i=row_number(desc(disp)))
吗?
即使在SQL中,它也对我有用。