第7章 入出力と保存 ・ ノック 98 / 100 ・ [[000 - はじめに(使い方と目次)|目次]]<br>
← 前 [[097 - ggplot の図を保存する]] ・ 次 → [[099 - ネット上のデータを読み込む]]
> [!info] RDS 形式:R オブジェクトをそのまま保存する
> CSV はテキストなので、データフレームの「列の型」(数値なのか文字列なのかなど)が失われることがあります。RDS 形式(`.rds`)は R のオブジェクトをそのままバイナリとして保存するため、型もファクターの順序も完全に再現されます。
>
> - `saveRDS(オブジェクト, "ファイル名.rds")` で保存します
> - `readRDS("ファイル名.rds")` で読み戻します
>
> CSV と違い1つのオブジェクト専用の形式なので、R 以外のソフトでは開けません。「次回 R で使うためだけに保存する」ときに便利な方法です。保存先はワーキングディレクトリです。
## 問題
身長・体重のデータフレームを `df.rds` として保存し、別の変数 `df2` に読み戻してください。読み戻した内容を表示して確認しましょう。
> [!tip] ヒント
> `saveRDS(df, "df.rds")` で保存し、`df2 <- readRDS("df.rds")` で読み戻します。
> [!success]- 回答を見る
> ```r
> setwd("/tmp")
> df <- data.frame(
> name = c("Alice", "Bob", "Carol"),
> height = c(158, 172, 165),
> weight = c(52, 68, 58)
> )
> saveRDS(df, "df.rds")
> df2 <- readRDS("df.rds")
> df2
> ```
> ```
> name height weight
> 1 Alice 158 52
> 2 Bob 172 68
> 3 Carol 165 58
> ```
> `saveRDS` はメッセージを出さずに静かに保存します。エラーが出なければ成功です。