危険予測体験のデータセット作成は他のデータセットとは異なり、非常にややこしい手順を踏むので注意が必要である.
手順としては、これまでの手順のようにRからZipファイルに格納されているデータセットを一気に読み込むわけではなく、一度PCでZipファイルを全て解凍する必要がある.
具体的な手順は下記の通りである.
解凍・展開したZipファイルの中身を格納するためのフォルダ(展開フォルダ)を作成
上記展開フォルダ内に下記a, bを参考に作成したバッチ(bat)ファイルを作成
@echo off
:loop
if "%~1" == "" goto end
if "%~x1" == ".zip" (powershell expand-archive %1 %~p1%~n1 -Force)
shift
goto loop
:end
展開フォルダ内に全Zipファイルをコピー&ペーストする.
全zipファイルコピーをバッチ(bat)ファイルにドラッグ&ドロップする
ドロップ後は自動的に解凍・展開されたフォルダが展開フォルダ内に出力される
全て解凍・展開されたら展開フォルダ内のZipファイルコピーは削除する(消し忘れるとRでエラーになるため)
参考HP:https://www.himadara.info/entry/expand_all
複数のzipファイルをまとめて解凍(すべて展開)する方法【ダウンロード・インストール不要】 - 貧乏暇だらけ
すべて展開されればRの出番
dat2<-map_dfr(
list.files(
here("INSPECTIONDATA","危険予測体験/展開"),
#INSPECTIONDATAフォルダ内のbatiで展開したフォルダが格納されているフォルダを指定
pattern = "危険予測体験\\\\(上級\\\\)_01",
#pattern=は抽出したいファイルの名前のキーワードを指定「***********_ID_上級_1」などで格納されている.初・中・上級とコース番号を指定
#「(」と「)」の前には「\\\\」を入れておくこと
full.names = TRUE,
recursive = TRUE),
#下位フォルダも含めて検索
~read_csv(.x, #読み込むための関数
col_names = TRUE, #先頭行に項目名が含まれているので、col_names=TRUEとする
locale = locale(encoding = "shift-jis"))#文字化け対策として設定
)
lf <- list.files( #ここはID番号を作るためのコード
here("INSPECTIONDATA","危険予測体験/展開"), #INSPECTIONDATAフォルダとbatiで展開したフォルダが格納されているフォルダを指定
pattern = "危険予測体験\\\\(上級\\\\)_01", #pattern=は抽出したいフォルダの名前を指定
full.names = TRUE,
recursive = TRUE) %>%
as.data.frame()
a<-str_split(lf$.,"_") %>%
as.data.frame() %>%
t() %>%
as.data.frame()
dat3<-bind_cols(a$V2,dat2)
dat3<-rename(dat3,ID=...1)