SPSS またはテキストのデータ ファイルが多数あります。read.spss
ライブラリからR を使用して SPSS ファイルをインポートすると、使用foreign
時に値ラベルが自動的に追加されますuse.value.labels = TRUE
。これらはvalue.labels
、データ フレームの各列の属性として格納されます。ソース (SPSS またはテキスト) に関係なく、インポートされたオブジェクトの構造の一貫性を維持する必要があります。value.labels
テキスト ファイルからインポートされたデータ フレームの各非数値列 (係数または文字) に、属性とその値を割り当てる必要があります。以下は、テキスト ファイルからインポートされたデータ フレームからの抜粋です。
> mydf <- data.frame(w = factor(c(1, 2, 3)), x = c("fourth", "fifth", "sixth"),
y = c(9.3, 8.8, 2.6), z = factor(c(7, 8, 9)), stringsAsFactors = FALSE)
列ごとに次のことができます。
> attr(mydf$w, "value.labels") <- c(first = "1", second = "2", third = "3")
> attr(mydf$x, "value.labels") <- c(f4 = "fourth", f5 = "fifth", f6 = "sixth")
> attr(mydf$z, "value.labels") <- c(seventh = "7", eighth = "8", ninth = "9")
そして、次を確認します。
> attributes(mydf$w)
$levels
[1] "1" "2" "3"
$class
[1] "factor"
$value.labels
first second third
"1" "2" "3"
ただし、それぞれが多数の列を含む多数のデータ フレームでは、これは効率的ではありません。次のような値ラベルのリストを指定して、自動的にそれを行うことは可能ですか?
> lst.attr <- list(w = c(first = "1", second = "2", third = "3"),
x = c(f4 = "fourth", f5 = "fifth", f6 = "sixth"), z = c(seventh = "7",
eighth = "8", ninth = "9"))