循环中的dbWriteTable

时间:2016-10-28 21:48:03

标签: r rmysql

我有很多桌子要保存到AWS RDS中的MariaDb。我可以手动保存表格。但是我想创建一个循环来做,我无法弄清楚dbWriteTable命令的语法。     库(RMySQL)

dbWriteTable(con, "Account" , Account, overwrite = T)
dbWriteTable(con, "Campaign",  Campaign, overwrite = T)
dbWriteTable(con, "Contact" , Contact, overwrite = T)
dbWriteTable(con, "User", User, overwrite =T)

相反,我想循环播放。

nm = c("Account", "Campaign", "Contact",  "User")

for (i in 1:length(nm)) {

  dbWriteTable(con,  nm[i], paste(nm[i]), overwrite = TRUE)
 }

2 个答案:

答案 0 :(得分:3)

根据上述评论,使用get0代替paste就可以了:

nm = c("Account", "Campaign", "Contact",  "User")

for (i in 1:length(nm)) {
    dbWriteTable(con,  nm[i], get0(nm[i]), overwrite = TRUE)
}

答案 1 :(得分:0)

请改为尝试:

for (i in nm){
  dbWriteTable(con,  i, paste(i), overwrite = TRUE)
}

您不需要使用括号从原始列表中提取i,因为i直接表示列表中的该对象。基本上你是在为nm中的每个实例说,写入名为i的db表(它将是列表中的一个单词)并粘贴i的值作为名称。