Linux上的RMySQL(但不是OSX或Windows)提供垃圾数据

时间:2014-05-09 20:11:09

标签: mysql linux windows r rmysql

我们有一个R程序可以过滤表中的一些数据并创建一个包含结果的新表。在Windows和OSX上,程序运行并正确创建表。但是,在我们的Linux(Ubuntu 12.04)服务器上,同一个R程序生成一个包含垃圾数据的表。

当我们将Linux上生成的垃圾数据与正确的数据进行比较时,我们发现:

  • 应该具有文字值的列中看似任意的数字
  • 额外行

我们认为这个问题与编码有关,但到目前为止,我们改变数据库编码的所有努力都失败了。

我们的R脚本使用RMySQL连接MySQL数据库,过滤内容,并将其写入新表(使用dbReadTabledbWriteTable命令)。 我们知道命令本身不是问题,因为我们能够在过滤它们之前和之后检查data.frame - 问题在于dbWriteTable

这两个链接似乎最接近我们问题的解决方案,但我们必须等待拉取请求通过:

  1. https://github.com/jeffreyhorner/RMySQL/issues/6
  2. https://github.com/gagern/RMySQL/commit/b0fbef105ca61d69992a2ec5a5eafde30530b8d5
  3. 这些也是相关的:

    1. http://zee.balogh.sk/?p=928
    2. What does character set and collation mean exactly?

1 个答案:

答案 0 :(得分:1)

根据过去的经验,我会建议dbWriteTable这不是问题; 甚至不是编码问题!

编写data.frame时,您可能有stringsAsFactors = T, 这些数字是因子数字。