Okeyは、dplyrカンニングシートで何時間も見つめた後、ついにここで私の質問を諦めています。NAを他の列の最大ファクタカウントで置き換えます。
私はこの形式でデータを持っている:
ID Material Supplier
1 a 01
2 b 02
3 NA 01
4 NA 02
4 a 02
4 b 02
は今、私は業者によってグループ化された最も一般的な材料でNASに置き換えたいです。私はこのコードを使って最も一般的なマテリアルを数え、データフレームにカウントを入れますが、同時に置換を行いたいのです。事前に
b <- a[which(!is.na(a$material)),] %>%
group_by(supplier, material) %>%
summarise(n = n()) %>%
group_by(supplier) %>%
filter(n == max(n))
おかげで...
それはする必要がありません'dplyr'溶液? –
ここで 'merge(a、b、by = 'supplier')%>% mutate(マテリアル=合体(material.x、material.y))%>% select(サプライヤ、id、マテリアル)' – bouncyball
'setDT(df)[、Material:= ifelse(is.na(Material)、names(which.max(table(Material))])、Material )、by = Supplier] [] ' – BigDataScientist