我對R來說比較新,所以這可能是一個簡單的問題。我試圖廣泛搜索答案,但無法找到答案。從R中的data.frame獲取大型數據集中排名前N的元素
我有形式的數據幀:
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
這僅僅是從我的數據集圖示一個微小的樣品。我的數據幀超過一百萬行。第一個字符和nextword是字符類型。每個第一首可以有許多與它相關的nextwords,而有些可能只有一個。
如何從中生成另一個數據框,以便按照desc排序。每個'firstword'的freq順序,最多隻包含前6個nextwords。
我試過下面的代碼。
small = ddply(df, "firstword", summarise, nextword=nextword[order(freq,decreasing=T)[1:6]])
這工作對我的數據的較小的子集,但內存用完時,我在我的整個數據運行它。
工作太棒了!不會想到它。謝謝 –
正如David的回答指出的那樣,在'group_by'之前執行'arrange'可能會更快。 (上面的joran的編輯把這個Q&A放在了我的stackoverflow feed中,呃,只是注意到它有多大。) – Frank