- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在使用 RSQLite 1.0.0 包从 SQLite 3 数据库中提取数据时,我遇到了一个奇怪的现象。除日期时间值的年份外,所有内容都被截断!
看一个例子:
下面我正在提取 DATETIME 列:
library(RSQLite)
src_path <- "../DataLocked/Study.db"
con <- dbConnect(SQLite(), src_path)
dbGetQuery(con, "SELECT Todesdatum FROM Kontraindikation LIMIT 10")
这让我得到以下结果:
Todesdatum
1 NA
2 NA
3 2004
4 NA
5 2006
6 NA
7 NA
8 NA
9 NA
10 NA
现在我在同一张表中省略了 NON NULL 值:
dbGetQuery(con, "SELECT Todesdatum FROM Kontraindikation WHERE Todesdatum NOTNULL")
这让我得到以下结果:
Todesdatum
1 2004-09-16 00:00:00
2 2006-04-20 00:00:00
3 2006-06-02 00:00:00
4 2007-09-15 00:00:00
5 2008-06-12 00:00:00
6 2005-10-04 00:00:00
7 2008-11-22 00:00:00
8 2005-12-22 00:00:00
9 2006-11-05 00:00:00
10 2006-02-08 00:00:00
...
现在我尝试在 DATETIME 字段上做一个字符串格式:
dbGetQuery(con, "SELECT strftime('%Y-%m-%d',Todesdatum) as fixed_Todesdatum FROM Kontraindikation 10")
有效:
fixed_Todesdatum
1 <NA>
2 <NA>
3 2004-09-16
4 <NA>
5 2006-04-20
6 <NA>
7 <NA>
8 <NA>
9 <NA>
10 <NA>
我真的不知道发生了什么以及如何解决这个问题。如果有任何指点,我将不胜感激。
您好,亚历克斯
最佳答案
当前的 RSQLite
在数据类型检测方面有点弱。与大多数 DBMS 不同,SQLite 可以存储 arbitrary data types in each entry of a column .
您没有提交可重现的示例,但我能够重现问题:
library(tibble)
library(DBI)
a <- tibble(a = c(NA_integer_), b = 1)
b <- tibble(a = c("2014-06-04 00:00:00"), b = 2)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "test", a)
dbWriteTable(con, "test", b, append = TRUE)
dbReadTable(con, "test")
两个数据帧的a
列有不同的数据类型,通过先写入a
,该列被创建为INTEGER
。如果我将 NA_integer_
更改为 NA_character
,问题就会消失。你能复制这个吗?
可能是您的 Todesdatum
列具有 INTEGER
或 REAL
亲和性,这会欺骗 RSQLite
相信第一个值是一个数字。更新列亲和性,或使用具有所需格式的 strftime
解决方法。
无论如何,我同意 RSQLite 应该在这方面做得更好。
关于r - 根据空值在 RSQLite 中切碎的日期时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38256767/
我正在查看 documentation of RSQLite .我创建了一个数据库并使用 推送了一些数据 mydb = 150) dbSendQuery(mydb, paste("UPDATE mtc
我刚刚开始涉足 sqlite 的世界,主要是通过 R 的接口(interface)包“RSQLite”。 但是,似乎在处理 sqlite 数据库时让计算机进入休眠状态使其锁定,然后尝试关闭连接不会做任
我完全有可能忽略了一些东西,但是在使用 RSQLite 包时,是否仍然可以在 R 脚本中利用特殊字符串“:memory:”来加速数据检索? 最佳答案 是的,仍然可以使用特殊字符串 :memory: .
我经常使用具有 >10,000 列的大型 CSV 文件 (>50GB)。我正在考虑将信息读入 RSQLite这样我就可以轻松进行查询和子集化。 问题 SQLite 在单个 SQL 中有 2000 个字
我正在尝试使用 RSQLite 从我的数据库中读取表格。所有表的列名都带有“.”。 例如:我的测试表有2列:index, first.name 如何编写查询来过滤带有名字列的测试表: 我的代码是: d
我有一个包含 x、y 和 z 列的 sqlite 表。 x 和 y 是唯一键,z 是值。 我想用 R 向这个表中插入数据。如果插入重复记录 - 基于 x 和 y 字段,我希望 sqlite 拒绝该记录
我一直找不到关于 RSQLite 如何处理因子的文档。从快速测试(见下文)来看,它们似乎已转换为字符。 问题一:有没有办法把它们作为因子保存下来?我可以想到一些笨拙的方法(主要涉及一个单独的表或存储因
如何使用 RSQLite 编写带有日期的 SQL 查询。下面是一个例子。 dbGetQuery不返回任何行。 require(RSQLite) require(ggplot2) data(presid
我正在尝试使用 RSQLite 包(我也尝试过 sqldf 包)将一个大的 csv 文件加载到 SQL lite 数据库中。该文件包含所有英国邮政编码和它们的各种查找值。 我想避免将其加载到 R 中,
在使用 RSQLite 1.0.0 包从 SQLite 3 数据库中提取数据时,我遇到了一个奇怪的现象。除日期时间值的年份外,所有内容都被截断! 看一个例子: 下面我正在提取 DATETIME 列:
我有一个 SQLite 数据库,我使用 R 的 RSQLite 包进行查询。我有一个分类向量,我想通过它来过滤我的查询,这样我的查询看起来像这样: dbGetQuery(mydb,
所以我试图访问我的数据库文件但没有成功。这是我的脚本: library(DBI) library(sqldf) drv <- dbDriver("SQLite") con <- dbConnect(d
使用 RSQLite 构建 SQLite 数据库我想一次发送多个语句 - 这可能吗? 为什么这些不起作用: sql <- readLines("createtables.sql") dbSendQue
我在 R 中使用 RSQLITE 来构建数据库并执行“JOIN”操作并使用以下方法提取行: res<-dbSendQuery(con," SELECT DISTINCT all_transcr
我已经开始使用 RSQLite 和 dplyr 来有效地处理大型数据集。但是,我一直无法协调如何让 RSQLite 格式化日期或这里有哪些最佳实践。下面的例子应该说明这个过程对我来说在哪里失败: li
我有一个包含各种 token 和频率计数的数据库。当我尝试使用 RSQLite 从 R 中检索这些时,我得到的负数很低,因此可能存在缓冲区溢出问题。如果我在 say sqliteman 中打开数据库并
如何在 dbGetQuery() 的 bind.data 参数中为像 这样的 SQL 语句传递标量和一组值 select * from tst where x = ? and y in (?) 这是我
在 SQLite 中,我想找到我用 GROUP BY 定义的(记录的)系列的一阶差分的标准偏差.我的数据提供者给了我一个每日价格序列,但我想找到年化的每日波动率(每日返回的标准差——该系列的自然对数的
使用RSQLite在 RStudio 中运行大型查询时遇到以下错误 Error in rsqlite_send_query(conn@ptr, statement) : database or
我正在构建一个供内部使用的包,并尝试从用户那里抽象出所有可能的数据库交互。我需要在函数内连接到数据库并断开与数据库的连接(我认为)。但是,断开连接不起作用。 `my_func = function()
我是一名优秀的程序员,十分优秀!