Для действительно больших проблем, подобных этой, вы можете попробовать использовать data.table
s вместо plyr
:
library(data.table)
data <- data.table(data)
data[,transform(.SD,time = NROW(.SD)), by = uid]
, предполагая, что столбец time
еще не существует.
Я все еще нахожусь в процессе обучения data.table
, поэтому, когда я возиться с этим, кажется, что это может быть проще (и, возможно, быстрее):
data[,rep(.N, .N),by = uid]
.N
появляется во внутренней переменной, котораяпредставляет количество строк в каждой подгруппе.