- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 SQLite 数据库,我使用 R 的 RSQLite
包进行查询。我有一个分类向量,我想通过它来过滤我的查询,这样我的查询看起来像这样:
dbGetQuery(mydb,
'select PLT_CN, INVYR
from GRM
where ESTN_TYPE = "AL"')
这通常可以正常工作,并返回 ESTN_TYPE
级别为 AL
的所有数据。
然而。
它不会这样做。这是因为在存储数据的 .csv
文件中,值 AL
实际上输入为 "AL"
。因此,当我查询 AL
时,我的查询返回零数据。我该如何解决这个问题?
(感谢@Parfait 让我意识到这是我在上一个问题中的真正问题)。
最佳答案
RSQLite
library(DBI)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
df <- data.frame(a=1:5, b=sprintf('"%s"', letters[1:5]), stringsAsFactors=F)
df
# a b
# 1 1 "a"
# 2 2 "b"
# 3 3 "c"
# 4 4 "d"
# 5 5 "e"
dbWriteTable(con, "tbl", df)
# [1] TRUE
dbGetQuery(con, 'select * from tbl')
# a b
# 1 1 "a"
# 2 2 "b"
# 3 3 "c"
# 4 4 "d"
# 5 5 "e"
dbGetQuery(con, 'select * from tbl where b="a"')
# [1] a b
# <0 rows> (or 0-length row.names)
无论如何,使用参数化查询通常是一件好事,所以可以说是两败俱伤:
dbGetQuery(con, 'select * from tbl where b=:x', params=list(x='"a"'))
# a b
# 1 1 "a"
dbGetQuery(con, 'select * from tbl where b in (:x)', params=list(x=c('"a"','"c"')))
# a b
# 1 1 "a"
# 2 3 "c"
RMySQL
(我手头没有 mysql 实例,所以这是一个猜测。)
使用@x
代替:x
:
dbGetQuery(con, 'select * from tbl where b=@x', params=list(x='"a"'))
关于mysql - 当分类向量存储在引号中时的 RSQLite 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43946669/
我正在查看 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()
我是一名优秀的程序员,十分优秀!