При обучении модели машинного обучения я пытаюсь сэмплировать фрейм данных, который имеет переменную группировки, чтобы каждая группа обрабатывалась по разному правилу выборки. Например, мои данные:
df = data.frame(value = 1:10, label=c("a", "a", "b", rep("c", 7)))
Для групп с размером, скажем, 3, я хочу взять всю группу и не более, а для больших групп я хочу взять образец с размером 3 беззамена.
Итак, здесь может быть результат: df[c(1:3, 6,9,10),]
Если я использую group_by
и sample_n
, я получаю ошибку размера. Я думал о том, чтобы перейти к «ручному» анализу с разделением и дифференцированной выборкой, а затем снова связать строки, но есть ли более эффективный и прямой способ?