gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 02:12:33 25 4
gpt4 key购买 nike

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

AAA_1
AAA_2
AAA_3
AAA_4
AAA_5
AAA_6
AAA_7

每个数据库都包含一个汇总表。这些的名称如下,以list-querylist的形式

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 中分别导入和处理多个 My SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47918480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com