2
colとグループごとに発生するすべての等しい/同じ値(ユニーク== 1)が必要です。NA:
グループごとおよび列ごとに少なくとも2つの異なる私はそれらをすべて保ちたいと思っています。すべての同じ値を設定するNA、グループワイズおよびカラムワイズ
説明が難しい。いくつかのサンプルデータがあります:
担当者例:所望の出力がある
> ds
group mpg cyl disp hp stringis
1 1 1337.0 4 108 93 a
2 1 22.8 4 1337 93 a
3 1 22.8 4 1337 93 a
4 2 21.0 6 160 110 b
5 2 21.0 1337 160 110 c
6 2 21.0 6 160 110 d
7 3 21.0 6 160 110 e
8 3 1337.0 6 160 110 e
9 3 21.0 6 160 110 f
>
:
> ds
group mpg cyl disp hp stringis
1 1 1337.0 NA 108 NA NA
2 1 22.8 NA 1337 NA NA
3 1 22.8 NA 1337 NA NA
4 2 NA 6 NA NA b
5 2 NA 1337 NA NA c
6 2 NA 6 NA NA d
7 3 21.0 NA NA NA e
8 3 1337.0 NA NA NA e
9 3 21.0 NA NA NA f
>
私はtapply内sapplyでそれを行うために管理することができると思うが、私はそこにすべきだと思うように
ds <- data.frame()
for (i in 1:3) {
for(ii in 1:3) {
ds <- rbind(mtcars[i,1:4],ds)
}
}
rownames(ds) <- NULL
ds[1,1] <- 1337;ds[2:3,3] <- 1337;ds[5,2] <- 1337;ds[8,1] <- 1337;
ds <- cbind(group=rep(1:3,each=3),ds,stringis=c("a","a","a","b","c","d","e","e","f"))
に見えますより読みやすく、より速く解決することができます。
一般的な解決策を探しています。実際にはグループが常にトリプルなどのグループここ
私は間違いなくデータテーブルについて学ぶ必要があります。本当の必要があります –
@AndreElrico、yup。私もそうです:) – Sotos
'n_distinct'を使用してdplyr構文にするか、' data.table'から 'uniqueN'を作成することができます – akrun