Я относительно новичок в R, так что это может быть простой вопрос. Я пробовал искать экстенсивно для ответа, но не смог найти его.Получение верхних N отсортированных элементов из data.frame в R для большого набора данных
У меня есть кадр данных в виде:
firstword nextword freq
a little 23
a great 46
a few 32
a good 15
about the 57
about how 34
about a 48
about it 27
by the 36
by his 52
by an 12
by my 16
Это лишь небольшой пример для иллюстрации из моего набора данных. Мой DataFrame составляет более миллиона строк. firstword и nextword - это тип символа. У каждого первого слова может быть много связанных с ним нескольких слов, в то время как у некоторых может быть только одно.
Как сгенерировать еще один кадр данных из этого, чтобы он сортировался по desc. порядок частоты для каждого «первого слова» и содержит максимум 6 самых лучших слов.
Я пробовал следующий код.
small = ddply(df, "firstword", summarise, nextword=nextword[order(freq,decreasing=T)[1:6]])
Это работает для меньшего подмножества моих данных, но у меня заканчивается память, когда я запускаю ее по всем моим данным.
работал отлично! Не подумал бы об этом. Спасибо –
Как видно из ответов Дэвида, было бы быстрее выполнить '' '' 'перед' group_by'. (редактирование joran выше помещало это Q & A в мой поток stackoverflow. Упс, только что заметил, сколько ему лет.) – Frank