代码之家  ›  专栏  ›  技术社区  ›  Johnathan Maddon

强制mySQL查询为R中的非数字字符

  •  4
  • Johnathan Maddon  · 技术社区  · 11 年前

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

    但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=""))
    
    1 回复  |  直到 11 年前
        1
  •  1
  •   joran    11 年前

    您很可能想阅读您在上使用的函数的文档 ?sqlQuery ,其中包括关于以下两个相关论点的注释:

    as.is公司 作为字符返回的列(如果有)应该是 转换为其他类型?允许的值与read.table相同。请参阅 细节。

    字符串AsFactors 逻辑:列是否应返回为字符和 未被as.is排除,也未转换为任何其他内容 因素?

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