使用dplyr将本地数据框left_joining到远程postgresql表时,列不存在。

时间:2015-07-02 18:45:23

标签: r postgresql dplyr

我有一个名为tox的本地数据框,其中包含两列chem_codeLD50。我想(dplyr)left_join tox到名为usage的postgresql表中,该表包含yearlocationlbsarea列,以及chem_code使用chem_code作为连接键。我正在执行以下操作,根据dplyr文档设置copy = TRUE

   library(dplyr)
   tox <- load("~/dir/tox.csv")
   con <- src_postgres(dbname = "etc", 
                       host = "etc.com", 
                       user = "etc")
   usage <- tbl(con, dplyr::sql("SELECT * FROM data.table1"))
   usage_tox <- left_join(usage, tox, by = "chem_code", copy = TRUE)

但是,当我尝试使用源自tox的列进行进一步的dplyr操作时,例如:

   usage_tox <- usage_tox %>%
                ## convert to grams then divide by LD50
                mutate(lethal_doses = 453.592 * lbs / LD50)

然后:

   usage_tox <- collect(usage_tox)

我收到错误:

   Error in postgresqlExecStatement(conn, statement, ...): RS-DBI driver: (could not Retrieve the result : ERROR:  column "LD50" does not exist

我发现这很奇怪,因为当我在变异之前检查usage_tox时:

    head(usage_tox)
    chem_code   year    location    lbs     area       LD50
       231     1995   04M20N01E01   420.32  266.3       100 
       231     1995   04M20N01E01   120     163         100 
       253     1995   04M20N01E01   173.686 185        0.059

LD50似乎就在那里。

我是否要求dplyr做一些它不能做的事情?提前谢谢。

0 个答案:

没有答案