2014-07-17 61 views
0

我有很多data.frames(),我試圖通過RMySQL()發送到MySQL數據庫。在RMySQL dbWriteTable錯誤名稱粘貼

# 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 

不過,我相信這個問題是與粘貼valuedbWriteTable()自寫dbWriteTable(con3, "SPY", SPY, append=T)作品,但dbWriteTable(con3, "SPY", name, append=T)不會...

+0

我無法重新創建一個這樣的例子我的系統上,但我遇到了類似的情況,並已使用「的eval(名)」,而不是在爭論只是「名稱」的,它的工作。也許這可以幫助? – nfmcclure

+0

謝謝,@nfmcclure但'eval(name)'這不適用於此 – Rime

回答

1

您可能正在使用非基本軟件包來處理str_sub,我猜測您在substr上的行爲是一樣的。這是否成功?

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

謝謝@BondedDust工作! – Rime