もう少し研究を重ねると、Stata辞書ファイル* .DCTを使用してデータファイル* .DAの書式を取得できるように見えます。これを行うには、HRSのWebサイトから、 "データファイル" .zipファイルと "Stataデータ記述子" .zipファイルの両方をダウンロードする必要があります。各データファイルで正しい辞書ファイルを使用するようにファイルを処理するときは、覚えておいてください。 IEでは、 "W2FA.DAT"を定義するために "W2FA.DCT"ファイルを使用します。
library(readr)
# Set path to the data file "*.DA"
data.file <- "C:/h94da/W2FA.DA"
# Set path to the dictionary file "*.DCT"
dict.file <- "C:/h94sta/W2FA.DCT"
# Read the dictionary file
df.dict <- read.table(dict.file, skip = 1, fill = TRUE, stringsAsFactors = FALSE)
# Set column names for dictionary dataframe
colnames(df.dict) <- c("col.num","col.type","col.name","col.width","col.lbl")
# Remove last row which only contains a closing }
df.dict <- df.dict[-nrow(df.dict),]
# Extract numeric value from column width field
df.dict$col.width <- as.integer(sapply(df.dict$col.width, gsub, pattern = "[^0-9\\.]", replacement = ""))
# Convert column types to format to be used with read_fwf function
df.dict$col.type <- sapply(df.dict$col.type, function(x) ifelse(x %in% c("int","byte","long"), "i", ifelse(x == "float", "n", ifelse(x == "double", "d", "c"))))
# Read the data file into a dataframe
df <- read_fwf(file = data.file, fwf_widths(widths = df.dict$col.width, col_names = df.dict$col.name), col_types = paste(df.dict$col.type, collapse = ""))
# Add column labels to headers
attributes(df)$variable.labels <- df.dict$col.lbl
Health and Retirement Studyのウェブサイトにアカウントを作成して、運のないファイルの解析を試みました。 SPSSまたはSTATAまたはSASにアクセスできますか?これらのプラットフォームのうちの1つを使用して、Rパッケージ 'foreign'が読み込むネイティブ形式でエクスポートすることができます。 –
ご意見ありがとうございました。目的は、ファイルを直接読み込み、SPSS、STATA、またはSASを使用しないことです。これは可能で実用的ですか? – awunderground
すばらしいGoogle検索では、R関数 'read.fwf'への参照が返されました。あなたはそれを使ってみましたか? – Tom