【问题标题】:dbWriteTable in RMySQL error in name pastingRMySQL 中的 dbWriteTable 名称粘贴错误
【发布时间】:2014-09-07 16:37:51
【问题描述】:

我有很多 data.frames() 我正试图通过 RMySQL() 发送到 MySQL 数据库。

# Sends data frame to database without a problem
dbWriteTable(con3, name="SPY", value=SPY , append=T)

# stock1 contains a character vector of stock names...
stock1 <- c("SPY.A") 

但是当我尝试循环它时:

i= 1
while(i <= length(stock1)){
# converts "SPY.A" into SPY 
name <- print(paste0(str_sub(stock1, start = 1, end = -3))[i], quote=F) 
# sends data.frame to database
dbWriteTable(con3,paste0(str_sub(stock1, start = 1, end = -3))[i], value=name, append=T)
i <- 1+i
}

返回以下警告并且没有向数据库发送任何内容

In addition: Warning message:
In file(fn, open = "r") :
cannot open file './SPY': No such file or directory

但是,我认为问题在于将 value 粘贴到 dbWriteTable() 上,因为编写 dbWriteTable(con3, "SPY", SPY, append=T) 有效,但 dbWriteTable(con3, "SPY", name, append=T) 不会...

【问题讨论】:

  • 我无法在我的系统上重新创建这样的示例,但我遇到了类似的情况,并且在参数中使用了 'eval(name)' 而不仅仅是 'name' 并且它有效。也许这有帮助?
  • 谢谢,@nfmcclure 但eval(name) 对此不起作用

标签: database r stocks rmysql


【解决方案1】:

您可能正在为str_sub 使用非基础包,我猜您与substr 的行为相同。这成功了吗?

dbWriteTable(con3,  substr( stock1, 1,3) , get(stock1),  append=T)

【讨论】:

    猜你喜欢
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 2011-12-23
    • 1970-01-01
    • 2022-10-01
    • 1970-01-01
    相关资源
    最近更新 更多