Я ищу краткое решение data.table для следующего:
Я хочу добавить новый «коэффициент» столбца, который представляет собой размер каждой группы по отношению к общему количеству строк the dataframe.
Мы можем сделать это следующим образом: Добавить столбец «N», который является постоянным и содержит общее количество строк. Затем сгруппируйте по переменной «group» и разделите размер группы на общий размер:
df = data.table(group=c(rep("a", 2), rep("b", 3)))
df[, N:=.N][, ratio := .N/N, group][,N:=NULL]
с желаемым результатом:
group ratio
1: a 0.4
2: a 0.4
3: b 0.6
4: b 0.6
5: b 0.6
Но есть ли лучший способ без добавления / удаление фиктивной колонны?