mysql - 在 R 中分别导入和处理多个 MySQL 表

标签 mysql r

我在 mysql 数据库中有许多汇总表。数据库名称标记如下。我创建了这些文件名的列表 - 数据库名称列表

AAA_1
AAA_2
AAA_3
AAA_4
AAA_5
AAA_6
AAA_7

每个数据库都包含一个汇总表。它们的名称如下,采用列表-查询列表的形式

AAA_1_Summary
AAA_2_Summary
AAA_3_Summary
AAA_4_Summary
AAA_5_Summary
AAA_6_Summary
AAA_7_Summary

每个表都有一组变量。我正在对变量运行随机森林。

表 AAA_1

   Variable1    Variable2   Variable3   Outcome
     A           1           123         100
     B           2           145         150
     C           3           167         130
     D           4           111         111
     A           5           133         123
     B           6          131.6        111

我想通过 RMySQL 查询和 for 循环导入每个表。我想在每个表上分别运行随机森林,并且输出应写入一系列单独的文件中。

我尝试过以下代码

  require(RMySQL)# Import library
  require(DBI)# import library
  require(sqldf)# import library
  require(dbConnect)
  username = 'username'
  userpass = 'userpass'
  hostname = '111.11.11.1111'

  for (i in databasenameslist){
                      cdb<-i}
 for(i in querylist){
                      Query<- i}

  cdbconn = dbConnect(MySQL(), user=username, password=userpass, 
  dbname=cdb[i], 
  host=hostname)

上面的步骤是分别连接各个db。现在必须读取每个文件。为此,我使用以下代码。 数据库<-dbGetQuery(cdbconn,粘贴(querylist [i]))

上面的代码不起作用。

注意:最终的解决方案将类似于以下代码:Write many files in a for loop

最佳答案

考虑使用 Map 按元素迭代两个列表,因为您不需要嵌套循环。另外,将 SELECT * FROM 添加到您的查询列表名称中以发送适当的 SQL 调用。

# IF QUERYLIST IS A CHARACTER VECTOR
querylist <- paste0("SELECT * FROM ", querylist)

# IF QUERYLIST IS A LIST
querylist <- lapply(querylist, function(q) paste0("SELECT * FROM ", q))

proc_data <- function(db, qry) {      
   conn <- dbConnect(MySQL(), user=username, password=userpass, dbname=db, host=hostname)
   df <- dbGetQuery(conn, qry)    
   dbDisconnect(conn)

   # ... DO OTHER WORK ON DF: random forest, csv output    

   return(df)    # OR WHATEVER OTHER OBJ IN PROCESSING
}

df_List <- Map(proc_data, databasenameslist, querylist)

关于mysql - 在 R 中分别导入和处理多个 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47918480/

相关文章:

r - 按列名排序数据框

r - 按部分平均的数组

r - 获取随机森林中各个树的重要性

java - 在数据库中保存树结构

javascript - node.js mysql insert id - 如何在插入查询之外公开插入 id?

Mysql,动态将行转换为列

r - 使用 RPostgreSQL 提取数据时,是否有处理 R 中时间戳列的特定方法?

php - 我的代码将所有数据输出为 1 行,如何使其将单独的数据输出到单独的行中?

php - 使用 PHP 使用 MySQL 数据填充 HTML 表

r - NASA 瓷砖与 R 中的传单