У меня проблемы с использованием df с 2 столбцами и 4.632.351 строками.
Столбцами являются Имя и Пол.
Я хочу подсчитать дублирующиеся имена и добавить в новый столбец, поэтому я использую функцию ave
data2$NmbCmpDup <- as.numeric(ave(data2$Nombre,data2$Nombre, FUN = length))
Но это занимает так много времени, может быть, 3 часа, поэтому я останавливаю запущенный процесс.
Затем с помощью caret я создал раздел, чтобы я мог работать с меньшими затратами строки ..
createDataPartition(data$Genero, p = 0.01, list=F)
Итак, я создал 1% -ый раздел и использую функцию ave
data.p = createDataPartition(data$Genero, p = 1, list=F)
data2 = data[data.p,]
data2$NmbCmpDup <- as.numeric(ave(data2$Nombre,data2$Nombre, FUN = length))
А затем функция ave увеличится до 10 секунд .. Итак, я попробовал с 5 % и все еще был очень быстрым, поэтому я добавил все больше и больше процентов, пока не сделал 100% -ый раздел, а функция ave заняла всего 2 минуты.
Хорошо, теперь я хотел бы знать, почему ..? есть мысли?