我已成功将所有MySQL表加载到尽可能多的数据框变量中,所有的表名都与表名(这是个人学习)使用以下代码相同。我的问题是:有没有更好的方法,因为我感觉这很慢。将所有MYSQL表加载到具有相同名称的数据框中
db<-dbConnect(MySQL(),user='****',password="****",dbname="****",host='XX.XXX.XXX.XX')
tables<-dbListTables(db)
#load all tables in variables with same name as the MySQL table name.
#warning : this loop will take more than 90 seconds to complete and will download all the MySQL tables.
for (i in 1:NROW(tables)){
assign(tables[i],dbReadTable(db,tables[i]))
}
#release the DB
dbDisconnect(db)
这是地球上最快的方法吗?
速度方面的限制因素不是R代码,而是连接到数据库和表的大小。然而,更好的方法是将所有数据框放在一个命名列表中(在表名上使用'lapply'),如果你刚刚学习R,忘记了听过“assign”;不要使用它。 – joran
'dfList < - lapply(tables,function(t)dbReadTable(db,t))' – Parfait
@Parfait:这会将表存储在一个数组(列表)中。但我需要它们的变量名称与DB中的表相同。 –