我試圖自動將CSV文件寫入RSQLite數據庫。問題自動將CSV導入RSQLite數據庫
我這樣做是通過索引csvFiles
來實現的,這是存儲在環境中的data.frame變量列表。
我似乎無法找出爲什麼當我手動輸入,但不是當我試圖指數name
和value
領域我dbWriteTable()
代碼工作完全正常。
### CREATE DB ###
mydb <- dbConnect(RSQLite::SQLite(),"")
# FOR LOOP TO BATCH IMPORT DATA INTO DATABASE
for (i in 1:length(csvFiles)) {
dbWriteTable(mydb,name = csvFiles[i], value = csvFiles[i], overwrite=T)
i=i+1
}
# EXAMPLE CODE THAT SUCCESSFULLY MANUAL IMPORTS INTO mydb
dbWriteTable(mydb,"DEPARTMENT",DEPARTMENT)
當我運行的循環以上,我給出的這個錯誤:
"Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'DEPARTMENT': No such file or directory
# note that 'DEPARTMENT' is the value of csvFiles[1]
這裏是csvFiles
的dput
輸出:
c("DEPARTMENT", "EMPLOYEE_PHONE", "PRODUCT", "EMPLOYEE", "SALES_ORDER_LINE",
"SALES_ORDER", "CUSTOMER", "INVOICES", "STOCK_TOTAL")
我研究這個錯誤,它似乎與我的工作目錄有關;然而,我並不真正理解要改變什麼,因爲我甚至不試圖從我的電腦上操作文件,只是我的環境中已經有了data.frames。
請幫忙!
你有'值= csvFiles [I]'用大寫'I'?你也不需要'i = i + 1'。多說一點,我們需要像'dput(head(csvFiles))'這樣的東西。 – vaettchen
Hi @vaettchen,感謝您的支持。帶有大寫字母'I'的拼寫錯誤是我瀏覽器中的一個修正。這不是實際的代碼。任何想法爲什麼我的for循環不工作? – Morgan
我想你的變量'csvFiles'有些問題。如果你可以發佈'dput()'出來?看起來不像我的工作目錄錯誤。 csv文件沒有擴展名(沒有'DEPARTMENT.csv'? – vaettchen