トップ 一覧 検索 ヘルプ RSS ログイン 印刷

list.files()の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
! フォルダ内のファイルを連続して一括で扱う

多数の文書ファイルをいちいち開かず、一気に開いて連続して処理したいとき、list.files()でディレクトリからファイル名を拾って、map()に渡してやり、その中の関数で処理することができる。

以下は、データの中に数値型となるべき列が一部の文字列によって文字型になっているのを、まとめてNAに置き換えて数値型に変換している例。

 library(tidyverse)
 tmp <- " ID, name,国語,算数,英語
        001, 太郎, 100,  90,欠席
        002, 次郎,  90,  80,  20
        003, 三郎,  80,欠席,  50
        004, 花子,  70,  50, 100
        005, 桃子,  60,  60,  90"
 readr::read_csv(tmp) %>%
	saveRDS("temp1.rds")
 readr::read_csv(tmp) %>%
	saveRDS("temp2.rds")
 readr::read_csv(tmp) %>%	saveRDS("temp1.rds")
 readr::read_csv(tmp) %>%	saveRDS("temp2.rds")
 list.files(pattern = "temp.\\.rds") %>%
	map_df(readRDS) %>%
	mutate(across(!c("ID","name") & where(is.character), parse_number))

:参考:
r-wakalangの@joelnitta さんに教わった。