2014-07-17 3 views
0

나는 RMySQL()을 통해 MySQL 데이터베이스로 보내려고 많은 data.frames()을 가지고 있습니다. 내가 루프 때이름 붙여 넣기에서 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") 

는하지만 :

는 & 아무 것도 반환되지 않습니다 다음과 같은 경고가 데이터베이스 그러나

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

에 보내졌다

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 
} 

, 나는 문제가 붙여 넣기와 믿습니다 valuedbWriteTable()에 작성하면 dbWriteTable(con3, "SPY", SPY, append=T)이 작성되지만 dbWriteTable(con3, "SPY", name, append=T)은 작동하지 않습니다 ...

+0

내 시스템에서는이 예제를 다시 만들 수는 없지만 비슷한 상황이 발생하여 인수에 'name'대신 'eval (name)'이 사용되어 효과가있었습니다. 아마 그게 도움이 될 수 있니? – nfmcclure

+0

감사합니다. @nfmcclure하지만이 경우 작동하지 않는'eval (name)' – Rime

답변

1

str_sub에 비 기본 패키지를 사용하고 있으며 substr과 동일한 동작을하는 것으로 추정됩니다. 이것은 성공합니까?

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

Thanks @BondedDust That worked! – Rime

관련 문제