はここdplyr:別のケースでどのように(簡潔に)mutate条件を使用するのですか?
data <- data_frame(name = c('A','B','C','C',NA,'D'))
> data
# A tibble: 6 × 1
name
<chr>
1 A
2 B
3 C
4 C
5 <NA>
6 D
次の例を考えてみましょう、私は変数name
が実際に'A' -> 'one'
と'B' -> 'two'
にマップすることを知っています。私は単にマッピング値を取得する変数を作成したいと思います。もちろん、私の元のデータセットには、さらに多くのケースがあります。
はありませんの作業は次のとおりです。
data <- data %>%
mutate(mapping = ifelse(name == 'A', 'one', name),
mapping = ifelse(name == 'B', 'two', name))
> data
# A tibble: 6 × 2
name mapping
<chr> <chr>
1 A A
2 B two
3 C C
4 C C
5 <NA> <NA>
6 D D
ここで何が間違っていますか? dplyr
でこれを行う最も効率的な方法は何ですか?
多くの感謝!
ifelse式はifelse(name == 'A'、 'one'、name)でなければならないと思います。現時点では、ifelseはあなたのデータフレーム内の変数という名前のマッピングを探していますが、それはまだ存在しません。 – gfgm
ありがとうございますが、それでも正しく動作しません。 –
すべてのマッピング値をハードコードする必要がある場合は、ifelseステートメントをネストすることができます。 ifelse(name == 'A'、 'one'、ifelse(name == 'B'、 'two'、....)) – Craig