r-如何将函数中作为参数接收的变量名分配给data.table



我需要一个名为"客户端";,这个名字和我数据库里的名字一样。(这个例子是用表"客户机",但我需要更多其他名称的表(

tbl_import <- function (table)
{
sql<-glue_sql(paste0("select * from table"),.con=con)

table <- dbGetQuery(con,sql)
setDT(table)

table <<- copy(table)
table <<- table ##I replace with this too in another try but didn't work either
}
tbl_import("clients")

当我运行这个时,我没有名为"的data.table;客户端";,我得到一张名为";表";

使用assign()在调用方环境(parent.frame()(中创建具有自定义名称(table_name(的变量

tbl_import <- function (table_name) {
sql <- glue_sql("select * from {`table_name`}",.con=con)
x <- dbGetQuery(con,sql)
assign(table_name, setDT(x), parent.frame())
}
tbl_import("clients")

只需将函数分配给一个新名称。

clients <- tbl_import("clients")

最新更新