は、私がnames
に各group
最初の非欠落している名前のために、取得したいと思い、ここでは次の簡単な例Dplyr:グループで最初に見つからない文字列を見つける方法
group <-c('A','A','A','B','B','B','B')
names<- c(NA,'fred',NA,'josh','josh',NA,NA)
data=data_frame(group,names)
> data
# A tibble: 7 × 2
group names
<chr> <chr>
1 A <NA>
2 A fred
3 A <NA>
4 B josh
5 B josh
6 B <NA>
7 B <NA>
を考えてみましょう。どうやってやるの?3210とfirst
を使用する以下の解決策は失敗します。
data %>% group_by(group) %>% mutate(first_non_missing = first(names),
first_non_missing_alt = coalesce(names)) %>% ungroup()
# A tibble: 7 × 4
group names first_non_missing first_non_missing_alt
<chr> <chr> <chr> <chr>
1 A <NA> <NA> <NA>
2 A fred <NA> fred
3 A <NA> <NA> <NA>
4 B josh josh josh
5 B josh josh josh
6 B <NA> josh <NA>
7 B <NA> josh <NA>
確かに、グループA
ため、first_non_missing
は、3回のすべての観測のためのfred
..
感謝しなければなりません!
期待される結果は何ですか?見つかった名前は、指定されたグループの新しい変数にすべての値を代入する必要がありますか? –
はいそれはまさに普通の突然変異です。同じサイズの元のデータフレームと、各グループの '名前'に最初に欠けている文字列を繰り返す新しい列 –
ありがとうございました。しかし誰かがあなたよりも速かったです:D –