我有一个名为tox
的本地数据框,其中包含两列chem_code
和LD50
。我想(dplyr)left_join tox
到名为usage
的postgresql表中,该表包含year
,location
,lbs
,area
列,以及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做一些它不能做的事情?提前谢谢。