2

レベルのパターンに基づいて、変数内の因子を自動的に再コード化する方法を探しています。より大きなデータセットに対してソリューションを反復するつもりです。

以下に示す例のインスタンスが複数ある、より大きなデータセットがあります。レベルは、次のパターンを持つ傾向があります。

メイン カテゴリは 1、2、3、および 4 です。レベル 11、12、13、および 14 は、レベル 1 のサブカテゴリです。グループ化プロセスを合理化できるようにしたいと考えています。を使用してリファクタリングを正常に実行しましたfct_recodeが、私の意図は、この手順を同様のコーディング パターンに従う他の変数に拡張することです。

library(tidyverse)

dat <- tribble(
  ~Ethnicity, 
  "1",
  "2",
  "3",
  "4",
  "11",
  "12",
  "13",
  "14",
  "11",
  "13",
  "12",
  "12",
  "11",
  "13")

dat <- mutate_at(dat, vars(Ethnicity), factor)

count(dat, Ethnicity)
#> # A tibble: 8 x 2
#>   Ethnicity     n
#>   <fct>     <int>
#> 1 1             1
#> 2 11            3
#> 3 12            3
#> 4 13            3
#> 5 14            1
#> 6 2             1
#> 7 3             1
#> 8 4             1

dat %>% 
  mutate(Ethnicity = fct_recode(Ethnicity,
                                "1" = "1",
                                "1" = "11",
                                "1" = "12",
                                "1" = "13",
                                "1" = "14"
                                )) %>% 
  count(Ethnicity)
#> # A tibble: 4 x 2
#>   Ethnicity     n
#>   <fct>     <int>
#> 1 1            11
#> 2 2             1
#> 3 3             1
#> 4 4             1

reprex パッケージ(v0.2.1)により 2019-05-31 に作成

このメソッドは、予想どおり、11、12、13、および 14 のサブカテゴリを 1 にグループ化することに成功しています。各サブカテゴリのレベルを手動で変更せずにこれを行う方法はありますか? そして、このプロセスを同じパターンを持ついくつかの変数に拡張する一般的な方法は何でしょうか? ありがとうございました。

4

2 に答える 2