Как мне показать режим и как часто он появляется? - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть набор данных, содержащий голоса в виде столбцов и парламентариев в виде строк.Я хочу вычислить индекс соглашения и, следовательно, нуждаюсь в частоте режима.

Столбец выглядит, например, следующим образом:

V1
1
3
2
1
1
2
1

Я знаю следующий код, чтобы показать мне режим

getmode <- function(v) {
  uniqv <- unique(v)
  uniqv[which.max(tabulate(match(v, uniqv)))]
}

И я знаю, как ИК показывает мне частоту значений

a <- table(df$V1)
print(a)

Есть ли способ, что R берет режим, в моем примере 1, и показывает мне, как часто это происходит, вмой пример 4?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Вы можете интегрировать свою функцию getmode() следующим образом:

getmode <- function(v) {
  uniqv <- unique(v)
  mode <- uniqv[which.max(tabulate(match(v, uniqv)))]
  freq <- sum(v==mode)                      # here you count the values = to mode
  dats <- data.frame(                       # you can put in a data.frame
                      mode = (mode),        # mode
                      freq = (freq)         # frequency
                     )
  print(dats)                               # here you print the result               
  }

# let's try it
getmode(V1)
  mode freq
1    1    4

С данными:

V1 <- c(1,3,2,1,1,2,1)
0 голосов
/ 18 декабря 2018

Вы можете просто сделать

a <- table(df$V1)
max(a)

Или использовать вашу getmode функцию

sum(df$V1 == getmode(df$V1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...