标签: sqldf

动物园里的动物:我们可以通过ID聚合每日时间序列因子和标记活动吗?

假设多年来动物园里每天都有动物活动的时间序列.非常大的数据集的子集可能如下所示:

library(data.table)
type <- c(rep('giraffe',90),rep('monkey',90),rep('anteater',90))
status <- as.factor(c(rep('display',31),rep('caged',28),rep('display',31),
rep('caged',25), rep('display',35),rep('caged',30),rep('caged',10),
rep('display',10),rep('caged',10),rep('display',60)))
date <- rep(seq.Date( as.Date("2001-01-01"), as.Date("2001-03-31"), "day" ),3)
Run Code Online (Sandbox Code Playgroud)

"类型"是动物类型,"状态"是动物当天所做事情的指示,例如,笼养或展示.

animals <-  data.table(type,status,date);animals
         type  status       date
  1:  giraffe display 2001-01-01
  2:  giraffe display 2001-01-02
  3:  giraffe display 2001-01-03
  4:  giraffe display 2001-01-04
  5:  giraffe display 2001-01-05
 ---                            
266: anteater display 2001-03-27
267: anteater display 2001-03-28
268: anteater display 2001-03-29
269: anteater display 2001-03-30
270: anteater display 2001-03-31
Run Code Online (Sandbox Code Playgroud)

假设我们想要将其汇总到月度系列中,该系列列出了动物的整个月状态信息.在新系列中,"状态"反映了该月初动物的状态."fullmonth"是一个二进制变量(1 = TRUE,0 = FALSE),表示此状态是否持续整个月,"anydisp"是否为二进制变量(1 = TRUE,0 = FALSE),表示动物是否开启在一个月内的任何时间显示(> = 1天).因此,因为长颈鹿在1月和3月的整个月展出,但在2月份被关在笼子里,因此得到了相应的标记.

date <- rep(seq.Date( …
Run Code Online (Sandbox Code Playgroud)

r zoo sqldf data.table

5
推荐指数
1
解决办法
278
查看次数

R 卡在加载 sqldf 包中

我一直在尝试在 R 中使用 sqldf 包,但它只是在加载所需的包“proto”时停止。像这样:

库(sqldf)
加载所需的包:DBI
加载所需的包:gsubfn
加载所需的包:proto

我正在使用 R 版本 3.0.0 (2013-04-03)——“Masked Marvel”。有人可以让我知道这里缺少什么吗?多谢!

r sqldf proto

5
推荐指数
0
解决办法
3325
查看次数

sqldf:从数据框错误创建表:"没有这样的表".并创建了两个表而不是一个

我最近升级了R,RSQLite和sqldf(以下版本).

一般:

sqldf('create table foo as select * from bar', db = 'test.db')
Run Code Online (Sandbox Code Playgroud)

应该在附加的sqlite数据库中创建一个名为'foo'的表,如果存在加载新表,则使用数据框'bar'.

相反,我得到一个'没有这样的表'错误,而且当我查看数据库时,创建了'foo'和'bar'表.

可重复的例子:

library(RSQLite)
library(sqldf)
mydb = 'test.db'
## remove file if it exists                                                                                                                                                                                       
system(paste('rm', mydb))
## open connection                                                                                                                                                                                                
##con <- dbConnect(SQLite(), dbname=mydb)                                                                                                                                                                         
system(paste('ls -l', mydb))
sqldf( paste0( 'attach "', mydb, '" as new' ) )
system(paste('ls -l', mydb))
class(mtcars)
sqldf( 'create table mycars as select * from mtcars', dbname = mydb )
sqldf('select * from sqlite_master', dbname = mydb)
sqldf('select * from main.mycars limit 1', dbname …
Run Code Online (Sandbox Code Playgroud)

r sqldf rsqlite

5
推荐指数
1
解决办法
3957
查看次数

R 使用 SQLDF 时出错:SQL 变量太多

我在 r 中有一个包含近 2000 个变量的大型数据集。然后我使用 sqldf 编写一些 case 语句来在原始数据集上创建新列。但是我收到以下错误:

 Error in rsqlite_send_query(conn@ptr, statement) : too many SQL variables
Run Code Online (Sandbox Code Playgroud)

我今天重新启动了我的笔记本电脑,以前这个错误从未发生过。

任何帮助表示赞赏。

r sqldf

5
推荐指数
1
解决办法
2550
查看次数

R中的sqldf包,查询数据帧

我正在尝试使用R中的sqldf库重写一些代码,这应该允许我在数据帧上运行SQL查询,但是我遇到了一个问题,每当我尝试运行查询时,R似乎试图查询我使用的实际真正的MySQL数据库骗局,并通过我试图搜索的数据框的名称查找表.

当我运行这个:

    sqldf("SELECT COUNT(*) from work.class_scores")
Run Code Online (Sandbox Code Playgroud)

我明白了:

mysqlNewConnection(drv,...)出错:RS-DBI驱动程序:(无法连接到数据库:错误:无法通过套接字'/tmp/mysql.sock'连接到本地MySQL服务器(2))

当我尝试使用两种不同的方式指定位置时(第一个形成googlecode页面,第二个应该是基于文档的权利)

>     sqldf("SELECT COUNT(*) from work.class_scores", sqldf.driver = "SQLite")
Error in sqldf("SELECT COUNT(*) from work.class_scores", sqldf.driver = "SQLite") : 
  unused argument(s) (sqldf.driver = "SQLite")
>     sqldf("SELECT COUNT(*) from work.class_scores", drv = "SQLite")
Loading required package: tcltk
Loading Tcl/Tk interface ... Error : .onLoad failed in loadNamespace() for 'tcltk', details:
  call: dyn.load(file, DLLpath = DLLpath, ...)
  error: unable to load shared library '/Library/Frameworks/R.framework/Resources/library/tcltk/libs/x86_64/tcltk.so':
  dlopen(/Library/Frameworks/R.framework/Resources/library/tcltk/libs/x86_64/tcltk.so, 10): Library not loaded: /usr/local/lib/libtcl8.5.dylib
  Referenced from: /Library/Frameworks/R.framework/Resources/library/tcltk/libs/x86_64/tcltk.so
  Reason: …
Run Code Online (Sandbox Code Playgroud)

macos r sqldf

4
推荐指数
1
解决办法
7924
查看次数

SQL查询列表中的数据帧

给定数据帧

df1 <- data.frame(CustomerId=c(1:6),Product=c(rep("Toaster",3),rep("Radio",3)))
df2 <- data.frame(CustomerId=c(2,4,6),State=c(rep("Alabama",2),rep("Ohio",1)))
Run Code Online (Sandbox Code Playgroud)

存储在列表中

dflist <- c(df1,df2)
Run Code Online (Sandbox Code Playgroud)

如何在这些数据帧上运行sqldf查询(连接)?

尝试失败:

test <- sqldf("select a.CustomerId, a.Product, b.State from dflist[1] a
          inner join dflist[2] b on b.id = a.id")

test <- sqldf("select a.CustomerId, a.Product, b.State from dflist$df1 a
          inner join dflist$df2 b on b.CustomerId = a.CustomerId")
Run Code Online (Sandbox Code Playgroud)

r list dataframe sqldf data.table

4
推荐指数
1
解决办法
259
查看次数

更新函数sqldf R语言

我有SQLdf的问题.虽然我正在尝试更新表,但它总是将NULL作为输出.我对这个问题嗤之以鼻,但我无法弄清楚如何解决它.我的代码是:

fn$sqldf("update cons set V1='%$numbernew%' where V1=$'contact'")
Run Code Online (Sandbox Code Playgroud)

但是在我检查它以确定是否有变化后,所有都与开始时相同.任何想法都会有帮助.

r sqldf

4
推荐指数
1
解决办法
5994
查看次数

更新后sqldf无法正常工作

当我从sqldf函数文档运行第一个示例时:

library(sqldf)
a1s <- sqldf("select * from warpbreaks limit 6")
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Error in if (.allows_extensions(db)) { :missing value where TRUE/FALSE needed    
Run Code Online (Sandbox Code Playgroud)

在将一些软件包更新到最新版本后,今天出现了此错误.有任何建议如何解决此问题或如何恢复到以前的版本?

r sqldf

4
推荐指数
1
解决办法
2386
查看次数

如何使用sqldf获取日期?

我有一个具有"DATE"字段的数据框.例如:"24-10-2015"

变量采用日期格式.

当我使用sqldf时,例如:select min(DATE), MAX (DATE) from table ...输出是一个数字16623.

试过FORMATCONVERT,但它们在sqldf中不起作用.

任何提示?

r date sqldf

4
推荐指数
1
解决办法
7003
查看次数

在 R 中将平面文件保存为 SQL 数据库,而不将其 100% 加载到 RAM 中

我希望我要写的内容有意义。\n如果你看看

\n

r语言如何处理50GB大的csv文件?

\n

解释了如何查询 \xc3\xa0 la SQL(来自 R 的 csv 文件)。\n就我而言,我有大量数据存储为大型(或大于我的 RAM)平面文件。

\n

例如,我想将其中一个存储为 SQLite 数据库,而不将其完全加载到内存中。\n想象一下,如果您可以自动读取该文件中适合您的 RAM 的有限块,将其存储到 SQL 中,然后释放一些内存,处理下一个块,依此类推,直到所有文件都在数据库中。\n这在 R 中可行吗?如果表格可以存储为 tibble,那就更好了,但这并不重要。\n任何建议表示赞赏。\n谢谢!

\n

sqlite r sqldf dbplyr

4
推荐指数
1
解决办法
1026
查看次数

标签 统计

r ×10

sqldf ×10

data.table ×2

dataframe ×1

date ×1

dbplyr ×1

list ×1

macos ×1

proto ×1

rsqlite ×1

sqlite ×1

zoo ×1