【发布时间】:2016-12-18 18:25:54
【问题描述】:
当我将我的 RDA 文件加载到全局环境中时,为什么生成的数据框会更改为不同的名称?如何在创建 RDA 的函数中重命名它?
我的函数名为SaveRDAtoDisk(table) 并接受一个表名,该函数读取SQL 数据并将数据帧保存为RDA。问题是我知道获取输入的表名有下划线,所以我将所需的输出表名分配给一个变量:
name.of.table.dt <- paste0(gsub("_", ".", table), ".dt", sep = "")
所以这应该输出所需的数据框名称。
函数SaveRDAtoDisk("big_table") 正确输出了一个名为big.table.dt.rda 的RDA,但是当我加载RDA 时,它应该以名称big.table.dt 加载,但它被加载为name.of.table.dt,这是我分配给它的变量在函数中。这是怎么回事我如何重命名它?
# This function takes in a table name that contains underscores
# So I call SaveRDAtoDisk("log_hunter") and it loads a log.hunter.dt.rda into the current directory
# The problem is when I load the log.hunter.dt.rda file into the environment, the data frame is called name.of.table.dt (should be log.hunter.dt)
SaveRDAtoDisk <- function(table) {
# This line changes "log_hunter" into "log.hunter.dt.rda"
name.of.table.dt.rda <- paste0(gsub("_", ".", table), ".dt.rda", sep = "")
# This line changes "log_hunter" into "log.hunter.dt"
name.of.table.dt <- paste0(gsub("_", ".", table), ".dt", sep = "")
# This is the select statement that saves the sql query into the RDA file
name.of.table.dt.sql = paste0("select * from ", table, sep = "")
....
# Executes select query above
dt1 <- dbSendQuery(con, name.of.table.dt.sql)
# Should be "log.hunter.dt" <- fetch(dt1, rows.testing)
name.of.table.dt <- fetch(dt1, rows.testing)
# This properly saves the file "log.hunter.dt.rda"
save(name.of.table.dt, file = name.of.table.dt.rda)
dbClearResult(dt1)
}
因此,当我将 RDA 加载到环境中时,它会加载一个名为“name.of.table.dt”的数据框,而不是 big.table.dt,即使 RDA 已正确命名并且变量已在函数中分配。
【问题讨论】:
标签: r