我试图自动将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