data.table - размер группы относительно общего количества строк - PullRequest
2 голосов
/ 21 апреля 2020

Я ищу краткое решение 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

Но есть ли лучший способ без добавления / удаление фиктивной колонны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...