【问题标题】:Reading data from postgresql database into R without converting columns into factors将postgresql数据库中的数据读入R而不将列转换为因子
【发布时间】:2016-12-01 15:12:25
【问题描述】:

在使用 'RPostgreSQL' 库中的 'dbReadTable'、'postgresqlReadTable' 函数将数据从 postgresql 数据库读取到 R 时遇到下列问题。

  1. R 从数据库中读取 NULL 值作为“//N”
  2. 列被读取为因子
  3. 列名之间的空格、特殊字符替换为“.”

有没有类似as.is, na.strings, check.names in 'dbReadTable' / 'postgresqlReadTable'?

【问题讨论】:

  • 1) 我无法复制。 2) 您可以通过options("stringsAsFactors"=FALSE) 覆盖。 3)这是对 data.frames 中列名称的标准 R 约束,因为它们可能是变量。您可以在事后使用反引号转义覆盖。
  • @DirkEddelbuettel “dbReadTable”和“postgresqlReadTable”都是“RPostgres 包”中的函数。我已经尝试了这两种功能,但都没有达到我的目的
  • @DirkEddelbuettel 如何在“dbReadTable”/“postgresqlReadTable”中使用“stringAsFactors=FALSE”选项?我在这两个函数中都找不到这样的选项?
  • 现在你不精确了。有一个(CRAN)包RPostgreSQL——你的问题指的是它,我的答案是——还有另一个(仅限GH)包RPostgres。你的 cmets 说的是哪一个?简而言之,我们都喜欢reproducible examples在问题中是有原因的。
  • 对不起,我说的是“RPostgreSQL”包,其中包含“dbReadTable”和“postgresqlReadTable”包。

标签: r postgresql


【解决方案1】:

这是一个反例检索字符而不是因子:

 R> res <- dbGetQuery(con, 
 +       "select distinct symbol from stockinfo where symbol like 'SCH%'")     
 R> res 
    symbol      
 1    SCHG     
 2    SCHE 
 3    SCHV 
 4    SCHP 
 5    SCHB 
 6    SCHH
 7    SCHD 
 8    SCHZ
 9    SCHC 
 10   SCHO 
 11   SCHF 
 12   SCHR  
 13   SCHM
 14   SCHX 
 15   SCHA 
 R> class(res[,1])     
 [1] "character"
 R>   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2010-09-11
    • 2018-01-12
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    相关资源
    最近更新 更多