1

関数を使用して、カテゴリ変数のレベルと頻度を取得できますtable()。しかし、後で最も頻度の高いレベルを計算に入れる必要があります。どうやってやるの?

たとえば、カテゴリ変数 a から「191」を取得したいとします。

> table(a)
a
  19   71   98  139  146  185  191 
 305   75  179  744    1 1980 6760
4

3 に答える 3

1
ll<-data.frame(table(a))
ll[which.max(ll$Freq),]

mtcars データの例:

ll<-data.frame(table(mtcars$cyl))
 ll
  Var1 Freq
1    4   11
2    6    7
3    8   14

ll[which.max(ll$Freq),]
  Var1 Freq
3    8   14
于 2013-08-25T21:05:12.230 に答える
1

これは、最も頻度の高いレベルを取得するための他の多くの解決策を見つけることができるモードの質問に何らかの形で関連しています。いくつかのワンライナー ソリューションを収集し、最も頻繁なレベルが複数ある場合のソリューションも示します。

#Create Dataset
x <- c("a","a","b","c","c")

#Some ways to get the FIRST most frequent level: "a"
names(which.max(table(x)))
names(sort(-table(x)))[1]
names(sort(-table(x))[1])

#Some ways to get ALL most frequent levels: "a" "c"
names(which(max(table(x))==table(x)))
names(table(x))[table(x)==max(table(x))]
names(table(x)[table(x)==max(table(x))])
#or the same but replace "table(x)" with "z"
z <- table(x)
names(which(max(z)==z))
names(z)[z==max(z)]
names(z[z==max(z)])
于 2019-03-20T16:13:02.920 に答える