在R

时间:2019-02-26 14:59:04

标签: r rodbc

我目前正在尝试使用i将多个SQL表加载到R Studio中,该表被描述为chr [1:36],元素之间用空格分隔,并且正在使用以下命令:

for (i in tables){
  assign(i, sqlQuery(dbconnection, paste("select * from ", i, ";")))
}

此处的目标是使用SQL Server上的表名作为数据框的名称将SQL表加载到R中。

我不断收到以下错误消息:

  

在assign(i,sqlQuery(dbconnection,paste(“ select * from”,i,“;”))))中:
      仅第一个元素用作变量名

当然,在我的数据环境中仅加载了第一个SQL表。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

应避免使用帮助您使用assign()的建议。不好的做法是会在以后使用难以创建和维护的代码。

使用列表基本上总是更好。

#Creates a named list the length of the number of tables
table_list <- setNames(vector("list",nrow(tables)),tables$TABLE_NAME)

for (i in tables$TABLE_NAME){
  #Put each table in the list, one by one
  table_list[[i]] <- sqlQuery(dbconnection,paste("select * from ", i, ";"))
}