У меня есть набор данных с 82147 акциями и 36 переменными, и мне нужно найти 200 верхних уровней столбца «Описание» с самой высокой частотой, но в наборе данных есть столбец QTY, поэтому я нахожу наиболее частыеуровни «Описание», я не получаю истинную картину того, что является наиболее часто повторяющимися элементами, поскольку в каждой записи также указан QTY, который не равен 1.
Top20InvDesc <- names(sort(summary(as.factor(Inventory$Description)),
decreasing=T)[1:20])
Top20InvDesc
Я пробовал это и продолжаю рыскатьИнтернет, как это сделать, но я также не знаю, как правильно задать этот вопрос, поэтому я смотрю на множество подобных вещей, но ничего, что мне нужно.
Top20InvDesc <- names(sort(summary(as.factor(Inventory$Description)),
decreasing=T)[1:20])
Top20InvDesc
и
library(dplyr)
Inventory %>%
group_by(Description) %>%
top_n(5, Qty)
Скажем, что «шприц» - это один из уровней в столбце «Описание», и это самый повторяющийся уровень, но количество записей в каждой записи равно 5. Существует также уровень «перчаток».в столбце «Описание» и это 5-й наиболее повторяющийся уровень, но QTY составляет 1000 для каждого.Я знаю, что «перчатки» должны быть первым элементом в новом фрейме данных, который я пытаюсь создать, но я не могу понять, как заставить мой код сделать это.Самый простой способ решить мою проблему - это создать новый фрейм данных, в котором каждый элемент указан как QTY 1 и использовать только самые верхние 20 элементов.
Что я получаю
Description
<fctr>
ARMBOARD INTRAVENOUS NEONATAL 4X1.5IN FOAM SEMIFLEXIBLE DISPOSABLE LATEX FREE-BG/24EA
Qty
<int>
32
Что я хочу получить, и теперь Armboard будет указан в списке 32 раза.
Description
<fctr>
ARMBOARD INTRAVENOUS NEONATAL 4X1.5IN FOAM SEMIFLEXIBLE DISPOSABLE LATEX FREE-BG/24EA
Qty
<int>
1
Мой ноутбук имеет 32 ГБ памяти и блок питания на 180 Вт, поэтому я подумал, что мне придется иметь дело с задержкойвремя обработки, но это также значительно облегчит работу с данными.