1
データセットをクリーニングしており、多くの因子変数を再コード化する必要があります。これを行う関数を作成するのにrlang
とmap
を使用したいと思います。私のサンプルデータセットとコードは以下の通りです。私はほとんどそれを持っていると思うが、私は完全に把握していないのでおそらく、バグを把握することができませんrlang
。rlangとmapを使用して多くの変数を再コード化するR
の作業データセット:ここ
df1 <- tribble(
~var1, ~var2, ~var3,
"1", "1", "1",
"2", "2", "2",
"3", "3", "3"
)
が、私は単一の変数(と私は希望の結果を)再コーディングする方法を次のとおりです。ここで
df1 <- df1 %>%
mutate(var1 = fct_recode(var1,
"0" = "1",
"1" = "2",
"2" = "3"))
は私の作業コードです:
recode = function(...){
mutate_quo = quos(...)
map(mutate_quo, ~{
df1 <- df1 %>%
mutate(!!.x = fct_recode(!!.x,
"0" = "1",
"1" = "2",
"2" = "3"))
})
}
これにより、次のエラーが発生します。
Error: unexpected '=' in:
" df1 <- df1 %>%
mutate(!!.x ="
> "0" = "1",
Error: unexpected ',' in " "0" = "1","
> "1" = "2",
Error: unexpected ',' in " "1" = "2","
> "2" = "3"))
Error: unexpected ')' in " "2" = "3")"
> })
Error: unexpected '}' in " }"
> }
Error: unexpected '}' in "}"
!!
を削除すると、関数がコンパイルされます。私はその後、recode("var1")
を使用して、それを呼び出すようにしようとすると、しかし、私は次のエラーを取得する:
Error in mutate_impl(.data, dots) :
Evaluation error: `f` must be a factor (or character vector)..
私が機能を持っており、そしてちょうどrecode(var1, var2, var3)
を実行したいと思います。
なぜ 'mutate_all(DF1、〜fct_recode(。、 "0"= "1"、 "1"= "2"、 "2"= "3"))' – Nate
私は本当のデータセット私がmutateを介してコード化したいと思わない他の何百もの変数があります。 – scottsmith
'mutate_at'または' mutate_if'を使って、選択した列だけを変更することができます。 – eipi10