Mysql SQLR保存字符串变量循环问题

Mysql SQLR保存字符串变量循环问题,mysql,r,loops,rodbc,Mysql,R,Loops,Rodbc,几年后,我又回到了R的世界,遇到了通过sqlSave循环传递变量的问题。我已经用MySQL在Win7机器上启动了RODBC并顺利运行,但我的循环似乎无法正常工作。以下是我拥有的数据以及我正在努力完成的工作: 使用pitchRX库保存为一个名为“mlb12”的“值”并带有多个表的2012年MLB逐场播放数据 “mlb12”内有七张桌子(击球、投球、比赛、球员、跑步者、裁判员、教练) 我想创建一个循环,为R中的每个表创建一个数据帧,这样我就可以使用sqlSave将它们通过一个循环插入到我的MySQ

几年后,我又回到了R的世界,遇到了通过sqlSave循环传递变量的问题。我已经用MySQL在Win7机器上启动了RODBC并顺利运行,但我的循环似乎无法正常工作。以下是我拥有的数据以及我正在努力完成的工作:

  • 使用pitchRX库保存为一个名为“mlb12”的“值”并带有多个表的2012年MLB逐场播放数据
  • “mlb12”内有七张桌子(击球、投球、比赛、球员、跑步者、裁判员、教练)
  • 我想创建一个循环,为R中的每个表创建一个数据帧,这样我就可以使用sqlSave将它们通过一个循环插入到我的MySQL数据库中
  • 我已经在MySQL数据库中插入了所有这些表,但是我用了“很长”的方法(即声明每个DF并为每个插入创建一个sqlSave语句),我更愿意用两个循环来清理代码
  • 下面是我当前必须刮取这些数据并将其插入MySQL数据库的代码:

图书馆(RODBC)

库(pitchRx)

mlb12您可以使用
lappy
例如:

channel <- odbcConnect("db", uid = "cs", pwd = "pw")
a<-c("atbat","pitch","game","player","runner","umpire","coach")
lapply(a,function(x) 
     sqlSave(channel,mlb12[[x]],tablename=x)
close(channel)  
channel我做了一个小的编辑(将频道放入循环中),使它工作得很好。万分感谢,我知道必须有一个简单的方法来做到这一点<代码>a
i<-0
while (i<6) {
i<-i+1
a<-c("atbat","pitch","game","player","runner","umpire","coach")
b<-paste("mlb12$",a,sep="")
c[[i]]<-paste("test",i,sep="")
  }
channel <- odbcConnect("db", uid = "cs", pwd = "pw")
a<-c("atbat","pitch","game","player","runner","umpire","coach")
lapply(a,function(x) 
     sqlSave(channel,mlb12[[x]],tablename=x)
close(channel)