2014-10-19 53 views
1

我有一個字符串,需要查找出現頻率最高的字符串中的單詞。我已經嘗試了我能想到的max,which.max,sort,order和rank的所有變體 - 但似乎無法正確地獲得語法。我也試着在這裏所有的方法中發現:Calculate frequency of occurrence in an array using RR - 對字符串中的單詞進行排序或查找max()

示例代碼:

zzz <- c("jan", "feb", "jan", "mar", "mar", "jan", "feb") #random example data 
zzz <- paste(zzz, collapse=" ") #make data look like what I'm working with 
zzz 

任何建議都非常感謝!

回答

2

如何:

Freq <- table(unlist(strsplit(zzz," "))) 
# > Freq 
# feb jan mar 
# 2 3 2 
> Freq[which.max(Freq)] 
jan 
    3 

如果你只是想實際字作爲輸出,

> names(Freq)[which.max(Freq)] 
[1] "jan" 
+1

完美!謝謝。 :) – jdfinch3 2014-10-19 21:15:57

+0

你可能也想擔心關係。在這個例子中,表格的第一個元素(如果是內存服務,它是按字母順序排列的),如果是平局,總會被選中。 – pdb 2014-10-20 02:50:18

+0

有什麼好擔心的?他們要麼存在要麼沒有。 – nrussell 2014-10-20 11:20:25

2

你也可以factor分裂矢量然後tabulate

f <- factor(strsplit(zzz, " ")[[1]]) 
levels(f)[which.max(tabulate(f))] 
# [1] "jan" 
相關問題