循环中的 dbWriteTable
r dbWriteTable in loop
我有许多 table 要保存到 AWS RDS 中的 MariaDb。我可以手动保存 tables。但是我想创建一个循环来做,但我无法弄清楚 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)
}
试试这个:
for (i in nm){
dbWriteTable(con, i, paste(i), overwrite = TRUE)
}
您不需要从带括号的原始列表中提取 i,因为 i 直接表示列表中的那个对象。本质上,您是说对于 nm 中的每个实例,写入名为 i 的数据库 table(这将是您列表中的单词之一)并将 i 的值粘贴为名称。
根据上面的评论,像这样使用 get0
而不是 paste
会起作用:
nm = c("Account", "Campaign", "Contact", "User")
for (i in 1:length(nm)) {
dbWriteTable(con, nm[i], get0(nm[i]), overwrite = TRUE)
}
我有许多 table 要保存到 AWS RDS 中的 MariaDb。我可以手动保存 tables。但是我想创建一个循环来做,但我无法弄清楚 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)
}
试试这个:
for (i in nm){
dbWriteTable(con, i, paste(i), overwrite = TRUE)
}
您不需要从带括号的原始列表中提取 i,因为 i 直接表示列表中的那个对象。本质上,您是说对于 nm 中的每个实例,写入名为 i 的数据库 table(这将是您列表中的单词之一)并将 i 的值粘贴为名称。
根据上面的评论,像这样使用 get0
而不是 paste
会起作用:
nm = c("Account", "Campaign", "Contact", "User")
for (i in 1:length(nm)) {
dbWriteTable(con, nm[i], get0(nm[i]), overwrite = TRUE)
}