问题标签 [rodbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
excel - 使用 RODBC 将公式写入 Excel 文件
我可以使用包将数据框写入 excel 文件RODBC
。
现在我想包括一些公式,例如=A1
,在打开 excel 文件时被解释为这样;在数据框中包含“=A1”作为文本会在 Excel 文件中生成字符串条目“=A1”(公式栏中显示的值为'=A1
),并且不会被解释为公式。
r - 使用 RODBC 时检索 MS Access 文件名
输入我的连接名称,我会看到类似DBQ=Path\to\DB
. 如何检索此值?我试过了
conn$DBQ
conn[DBQ]
conn['DBQ']
conn[,'DBQ']
无返回值。我试过typeof(conn)
了"integer"
,class(conn)
-> "RODBC"
,mode(conn)
-> "numeric"
。
r - Access 中的 RODBC 数据导入错误
我正在尝试将在访问数据库上执行的查询结果导入 R。我可以使用 RODBC 包建立连接并且能够检索记录,因此与数据库的连接不是问题。问题是当我将两列读入 R 时,它们是不准确的。
access 中的查询从表中读取数据,然后根据我执行的计算生成两个附加列。我导入了 18 列,其中 16 列直接来自表,另外两列是计算列。当我在访问中执行此查询时,一切都很好。access 中的两个计算列的结果(许多 IIF 语句的结果),我将其称为 V1 和 V2,运行查询后在 access 中的结果如下所示:
V1 采用三个值(A、B、C),V2 包含浮点数,范围从大约 -.35 到 1.5。
这些值正是我想要的,所以我知道当我在 access 中运行查询时它是有效的。
我想在 R 中获得这些相同的值,所以我运行生成上述结果的相同查询,如下所示:
同样,与数据库的连接不是问题。在我尝试从 R 运行此查询后,两个计算列(V1 和 V2)的结果与我在 access 中运行查询时的结果不匹配。其他列是直接从表中读取而没有任何计算的,它们应该是这样的。在 R V1 和 V2 中运行查询后,如下所示:
对于 V1,每个值现在都相同 (A)。对于 V2,一些值被正确读入,但不是全部。许多值已更改为 0,现在 V2 中的最小值是 -.07,而当我在 access 中运行相同的查询时,V2 中的最小值是 -.35。未更改为 0 的值是正确的。
我的下一个想法是从访问中的查询中创建一个表,然后尝试读取整个新表。但是,我强烈希望按照我最初计划的方式获取数据,并且我想弄清楚这个问题,以便将来避免它。
编辑:我无法显示实际查询,因为它是专有工作的一部分,但这是一个非常相似的查询:
rodbc - R RODBC - sqlSave 小数精度问题
我正在使用 RODBC 使用从 R 到 Oracle 的 sqlSave。我正在保存带小数位的数字并获得额外的小数位。例如:
来自 R 的 195.45 显示为
甲骨文中的 192.45000000000002
sql - RODBC:sqlUpdate() 无法识别索引列
我的数据库表大致如下所示:
第一列 (ID1) 定义为 PK。但是,ID2 也是唯一的。
现在我希望能够使用from package更改FilePath2
和Status
使用 R。所以我尝试以下方法:sqlUpdate()
RODBC
其中db.df
是一个数据框,其中一行和列名对应于数据库表中的行名(但是,在这种情况下,我省略了一些列,如果可能的话,我也FilePath1
更愿意省略ID1
)。我的目标是获得以下内容:
我收到以下错误:
这个问题的原因可能是什么?
编辑:我通过发送直接 SQL 查询绕过了这个问题:
虽然这可能不是一个简洁的方式,但它做了它应该做的事情。但是,我仍然不明白这是怎么回事sqlUpdate
,所以我希望有人能解释一下。
excel - RODBC 读取错误,其中 excel 列包含前导 NA
我一直在阅读 Excel 表格以R
使用该RODBC
软件包,并且遇到了 Excel ODBC 驱动程序的问题。包含(足够的)前导 NA 的列被强制为逻辑。
在 Excel 中,数据显示如下:
我读入了以下数据:
这在整个第二列中读取为NA
。我认为这是因为它被猜测是合乎逻辑的,因此随后的数字被评估为无效,因此NA
.
我正在尝试找到一种方法来防止这种强制合乎逻辑,我认为这会导致随后的错误。
我通过搜索 SO 找到了这个Q+A,但是我正在工作并且不希望被允许编辑注册表以更改 DWORD 的默认值,如建议的那样(我知道这里设置的值决定了之前需要多少个 NA微软猜测数据类型并轰炸我的阅读)。
现在,我认为最好的解决方案是反转 Excel 中的数据,并将其倒置读入 R。
我喜欢一个好的黑客,但肯定有更好的解决方案吗?
r - RODBC sqlQuery() 在成功执行时返回错误消息
这是一个时间敏感/紧急问题。我有一些 R 代码,其中涉及使用 RODBC 包的许多 SQL 查询。这段代码每天早上都在专用的 Linux 服务器上运行——它会提取一些数据,进行一些统计,然后将数据重新插入 MSSQL DB。
今天,我们的 sysarch 升级到 Ubuntu 12.04.1,从那时起,我遇到了一堆 ODBC 问题。在进行了一些更改之后,我们得到了它,以便可以建立 ODBC 连接,但现在有一个更大的问题。基本上,每次执行 CREATE 或 DROP 命令时,我都会从 RODBC 收到错误消息,即使已创建/删除了已识别的表。示例(bts.connect
是 的结果odbcConnect([connection information])
):
所以#tempscores 表存在
即使它存在,我们也“不能”放弃它
但是我们已经放弃了它。
我们也无法创建它,但它存在并且我们可以从中选择:
sqlQuery(bts.connect, "SELECT OBJECT_ID('tempdb.dbo.#tempscores')") 1 1066251024 sqlQuery(bts.connect, "SELECT * FROM #tempscores") [1] dummy <0 rows> (或 0-length行名称)
我束手无策,我真的需要这个明天早上为客户成功运行。有人知道是什么导致了这种奇怪的行为吗?
mysql - 表名超过 18 个字符时 sqlSave 失败
我目前正在编写一个脚本,该脚本从 FTP 服务器下载一堆 .csv,然后将每个 .csv 作为自己的表放入 MySQL 数据库中。
我使用 RCurl 从 FTP 下载 .csv 文件,并将所有 .csv 文件放在我的工作目录中。为了从每个 .csv 中创建表,我使用了 RODBC 包中的 sqlSave 函数,其中表名与 .csv 相同。每当 .csv 名称少于 18 个字符时,这都可以正常工作,但是当它更大时,它会失败。“失败”是指 R 崩溃。为了追踪这个错误,我在 sqlSave 上调用了调试。
我发现至少有两个 sqlSave 调用的函数会导致 R 崩溃。第一个是 RODBC:::odbcTableExists,它是一个不可见的函数。这是该函数的代码:
当表名长度超过 18 个字符时,此处失败:
我已通过将其更改为:
然后,我使用 assignInNamepace 重新分配命名空间中具有相同名称 (odbcTableExists) 的函数,并更改此代码。
RODBC:::odbcTableExists 不再导致问题。但是,当从 sqlSave() 中调用 sqlwrite 时,R 仍然会崩溃。我在 sqlwrite 上调用了调试,我发现 RODBC:::odbcColumns (另一个不可见的函数)会导致表名太长时崩溃。不幸的是,我不确定如何更改 RODBC:::odbcColumns 以避免像以前那样出现错误。
我使用的是 R 2.15.1,平台是:x86_64-pc-ming32/x64(64 位)。我还应该注意,我正在尝试在工作计算机上运行它,但是如果我在个人计算机上运行完全相同的代码,R 不会崩溃(没有错误)。工作计算机运行 windows 7 专业版,我的家用计算机运行带有 R 2.14.1 的 windows 7 家庭高级版。
sql - RODBC 将数据框连接到 sqlQuery 中的表
我一直在使用 RODBC 连接到工作中的 DB2 数据库,到目前为止一切正常。我可以通过 sqlQuery 提取表,并在将它们作为数据框返回之前连接数据库中的表。但是,我经常通过抓取和操作表,然后将它们连接回数据库来加快 SAS 中的过程。当我尝试在 R 中执行此操作时,我遇到了问题。我希望它变成这样。
问题是 R 无法识别“数据框”。我认为它与“schema.dataframe”部分有关,因为我不确定工作区会有什么样的“模式”。有没有办法在 sqlQuery 中将数据框连接到数据库中的表?或者我可以以某种方式将数据框设为临时表并从那里加入吗?
sql - 提供来自 R 向量的查找列表作为用于 RODBC 查找的 SQL 表
我有一个 R 向量中的 ID 列表。
我想写一个 RODBC sqlQuery,其中有一个子句说明类似
我是否必须阅读整个表格,然后将其合并到 R 中的 idList 向量?或者如何将这些值提供给 RODBC 语句,以便只恢复我感兴趣的记录?
注意:由于列表很长,将单个值粘贴到 SQL 语句中,如下面的答案所示,不会这样做。