1. ホーム
  2. r

[解決済み] Rデータファイルから指定した変数名にオブジェクトをロードするには?

2022-11-06 06:02:57

質問

Rのデータファイルで変数を保存する際に save を使用して R データ ファイルに変数を保存すると、保存したセッションで持っていた名前と同じ名前で保存されます。後で別のセッションからそれをロードしようとすると、ロード スクリプトが知りえない同じ名前でロードされます。この名前は、ロードするセッションにある既存の同名の変数を上書きしてしまう可能性があります。既存の変数を上書きするリスクなしに、データ ファイルから指定された変数名でオブジェクトを安全にロードする方法はありますか?

セッションを保存します。

x = 5
save(x, file="x.Rda")

セッションをロードしています。

x = 7
load("x.Rda")
print(x) # This will print 5. Oops.

どのように動作させたいか

x = 7
y = load_object_from_file("x.Rda")
print(x) # should print 7
print(y) # should print 5

どのように解決するのですか?

単一のオブジェクトを保存するのであれば、単に .Rdata ファイルを使用せず .RDS ファイルを使ってください。

x <- 5
saveRDS(x, "x.rds")
y <- readRDS("x.rds")
all.equal(x, y)