4

我正在使用 RODBC 将 R 与 MySQL 数据库连接,但遇到了问题。我需要根据唯一的 ID 号(下面的 IDNUM)加入两个表。问题是 ID 号是 20 位整数,而 R 想要对它们进行四舍五入。好的,没问题,我将使用 CAST(blah AS CHAR) 将这些 ID 作为字符串而不是数字来提取。

但是 R 将传入的字符串视为数字并认为“嘿,我知道这些是字符串......但是这些字符串只是数字,所以我很确定这个人希望我将其存储为数字,让我修复给他的”然后将它们转换回数字并四舍五入。我需要强制 R 接受给定的输入,但不知道如何做到这一点。

这是我正在使用的代码(Interval 是一个包含开始和结束时间戳的向量,因此此代码仅用于从选定的时间段提取数据):

test = sqlQuery(channel, paste("SELECT CAST(table1.IDNUM AS CHAR),PartyA,PartyB FROM 
table1, table2 WHERE table1.IDNUM=table2.IDNUM AND table1.Timestamp>=",Interval[1]," 
AND table2.Timestamp<",Interval[2],sep=""))
4

1 回答 1

1

您很可能希望阅读您在 at 使用的函数的文档?sqlQuery,其中包括有关以下两个相关参数的注释:

as.is 作为字符返回的哪些(如果有)列应该转换为另一种类型?允许的值与 read.table 相同。阅读详情'。

stringsAsFactors 逻辑:是否应将列作为字符返回且未被 as.is 排除且未转换为其他任何内容的列是否应转换为因子?

您很可能希望在 中指定问题中的列as.is

于 2013-08-26T22:17:12.210 回答