Créer une nouvelle colonne avec des données.table de comptage des valeurs uniques

0

La question

ID
1
1
2
3
3
3
3

Je veux créer une colonne supplémentaire avec les données de la table de comptage de l'unique 1s, 2s, 3s, etc et les recueille. La finale de la dat.le tableau serait

ID CountID
1 2
1 2
2 1
3 4
3 4
3 4
3 4

Je vais essayer cela, mais ne fonctionne pas:

df[, CountID := uniqueN(df, by = ID)]
calculated-columns data.table r
2021-11-14 17:39:26
2

La meilleure réponse

0

les données.table

Vous pouvez utiliser .N pour cela:

library(data.table)
DT[, CountID := .N, by = ID]
DT
#       ID CountID
#    <int>   <int>
# 1:     1       2
# 2:     1       2
# 3:     2       1
# 4:     3       4
# 5:     3       4
# 6:     3       4
# 7:     3       4

de la base de R

DT$CountID2 <- ave(rep(1L, nrow(DT)), DT$ID, FUN = length)

Données

DT <- setDT(structure(list(ID = c(1L, 1L, 2L, 3L, 3L, 3L, 3L), CountID = c(2L, 2L, 1L, 4L, 4L, 4L, 4L)), class = c("data.table", "data.frame"), row.names = c(NA, -7L)))
2021-11-14 19:03:33
0

À l'aide de dplyr package

df1 = group_by(df, id) %>% count()
merge(df, df1)
   id n
1   1 3
2   1 3
3   1 3
4   2 1
5   3 4
6   3 4
7   3 4
8   3 4
9   4 2
10  4 2

Données

df = data.frame('id' = c( 1  , 1  , 1, 2, 3, 3, 3, 3, 4, 4))
2021-11-14 17:46:30

Puis-je le faire avec les données.table et l' := symbole?
Dani

Pas bien familiarisés avec data.table
Nad Pat

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................