グループ化および順序付け (ランク順) の両方が行われた観測値を含むデータ セットがあります。各グループ化変数の観測数のカウントである 3 番目の変数を追加したいと思います。変数をグループ化してカウントする方法は知っていますが、これらのカウントを、より多くの行がある元のデータ セットに再挿入する方法が見つかりません。以下の例の表で変数 C を取得したいと思います。
A B C
1 1 3
1 2 3
1 3 3
2 1 4
2 2 4
2 3 4
2 4 4
グループ化および順序付け (ランク順) の両方が行われた観測値を含むデータ セットがあります。各グループ化変数の観測数のカウントである 3 番目の変数を追加したいと思います。変数をグループ化してカウントする方法は知っていますが、これらのカウントを、より多くの行がある元のデータ セットに再挿入する方法が見つかりません。以下の例の表で変数 C を取得したいと思います。
A B C
1 1 3
1 2 3
1 3 3
2 1 4
2 2 4
2 3 4
2 4 4
を使用する 1 つの方法を次に示しave
ます。
DF <- within(DF, {C <- ave(A, A, FUN=length)})
# A B C
# 1 1 1 3
# 2 1 2 3
# 3 1 3 3
# 4 2 1 4
# 5 2 2 4
# 6 2 3 4
# 7 2 4 4
.Nは長さ 1 の整数で、グループ内の行数を含みdata.table
ます。.N
> library(data.table)
> DT <- data.table(A = rep(c(1, 2), times = c(3, 4)), B = c(1:3, 1:4))
> DT
A B
1: 1 1
2: 1 2
3: 1 3
4: 2 1
5: 2 2
6: 2 3
7: 2 4
> DT[, C := .N, by = "A"]
> DT
A B C
1: 1 1 3
2: 1 2 3
3: 1 3 3
4: 2 1 4
5: 2 2 4
6: 2 3 4
7: 2 4 4