memsciでdata.setをインポートした後(これは非常にうまくいきました!:))、私は現在、データの(順序付けられていない)ファクタに変換されますが、レベルは1,2,3,4,5ではありません(これは計算に必要な値です)。まったく "。文字の名前を持つ要素を数値に変換する(.savファイルからインポートした後)
これは、因子を数値に変換するのにas.numeric(levels(f))[f]
を使用できないという問題につながります。
私はこれを使用し、私のデータをインポート取得するには:
data <- as.data.set(spss.system.file("data.sav"))
dat <- as.data.frame(data)
しかし:情報があるようです。
str(var1)
Factor w/ 5 levels "don't agree at all",..: NA 1 1 1 1 1 1 1 1 1 ...
labels(dat$var1)
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" "12"
[13] "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24"
levels(dat$var1)
[1] "do not agree at all" ". ." ". . ."
[4] ". . . ." "fully agree"
ここで値は保存されていますか?私はlabels(var1)
とちょうどvar1
を試しましたが、どちらも動作しません。ただし、as.numeric(var1)
を使用すると、必要な情報が得られますが、要因についてはRヘルプに記載されているようにこれを適用する必要はありません。また、dat[,1:ncol(dat)] <- lapply(dat[,1:ncol(dat)], function(x) as.numeric(x))
を使用した後でも、変数は依然として要因とみなされ、前とまったく同じように動作します。
編集:再現例感謝
var1 <- factor(c(1,2,3,4,5,5,4,3,2,1),
levels = as.character(1:5),
labels = c("Fully agree", "....", "...", "..", "Do not agree at all"))
他の人があなたの問題を再現できるように再現可能な例を投稿してください。 – Nate
'as.numeric(var1)'を試してみてください。 – cccmir
私は実際に再現可能な例を投稿できません。私の理解から、1つのコードは次のようになります: 'var1 < - factor(c(1,2,3,4,5,5,4,3,2,1)、 levels = c("完全一致"、" .... "、" ... "、" .. "、"全く同意しない ")、 labels = as.character(1:10))' これは動作するコマンドではありません。しかし私にとっては、このようにデータが作成されたように見えます。 – Susu