RDAファイルをグローバル環境に読み込むと、結果のデータフレームが別の名前に変わるのはなぜですか? RDAが作成された関数の中で、どのように名前を変更できますか?環境内のRDAファイルが別の名前に変更される
私の関数はSaveRDAtoDisk(table)
と呼ばれ、テーブル名を取ります。関数はSQLデータを読み込み、データフレームをRDAとして保存します。問題は、私が入力を取得するテーブル名はアンダースコアを持っていることを知っているので、私は変数に所望の出力テーブル名を割り当てる:
name.of.table.dt <- paste0(gsub("_", ".", table), ".dt", sep = "")
だから、これを出力すべき所望のデータフレーム名。私は、関数内に割り当て変数とする
機能SaveRDAtoDisk("big_table")
が正しくRDAを出力はbig.table.dt.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をロードするときに、それはRDAが適切に命名されていても「name.of.table.dt」としませbig.table.dt
と呼ばれるデータフレームをロードし、変数は関数内で割り当てられています。
適切な拡張モジュールを読み込むことができていることがわかりますが.Rdataです。 OPの特有の問題はsaveRDSとreadRDSで解決するのが一番良いように思えます.1つのオブジェクトしか含まれていないため、読み込み時に別の名前を割り当てることができます。 – AlexR