時にはうまく動作しないことがあるRスクリプトがあります。問題を、2つのデータセットをマージする前に、文字 - >ファクタ変換に関連するものであると特定しました。文字変数をファクタに変更する
私は、data1に '1'、 '2'、 '3'などのようにコード化された件名のリストを持っており、data2では '01'、 '02'、 '03' data2に一致するようにdata1の参加者番号を再コード化します。最初にdata1 $ subjを係数に変換し、forcatsでfct_recodeを使ってデータを再コードしようとします。次の2つのオプションのどちらも動作します:
library(forcats)
data1$subj <- as.factor(data1$subj)
data1 <- data1 %>%
mutate(subj = fct_recode(subj,
"01" = "1",
"02" = "2",
"03" = "3"))
または
data1 <- data1 %>%
mutate(subj = factor(subj),
subj = fct_recode(subj,
"01" = "1",
"02" = "2",
"03" = "3"))
私は首題を確認するために戻ってDATA1に行く、それは全体の文字変数として残っており、そのデータは再コーディングしません。
私が上で述べたように、時にはうまくいくこともありますが、時にはそうではありません!私は明らかに私のコードでいくつかのニュアンスを見逃してしまった。どんなアドバイスもありがとう!
、あなたはレベル 'のようなベースRの直接割り当て(DATA1ます$ SUBJ)を使用することができます。< - 1:それらが適切に注文されていると仮定して「3」とする。代わりに(先頭の0を取り除く) 'levels(temp)< - gsub("^0 "、"、levels(temp)) 'があります。 2つ目は順序を尊重し、おそらくより安全です。 – lmo