Нахождение наиболее повторяющегося символа в строке в R - PullRequest
1 голос
/ 22 апреля 2020

У меня есть строка под названием "яблоко". Я хочу запустить тест, чтобы увидеть, какой символ чаще всего встречается в строке, а именно «p».

Сначала я использовал str_extract_all("apple") и превратил список в тиббл, используйте group_by() и summarise(), чтобы вернуть наиболее встречающийся символ.

Я хотел бы спросить, есть ли более простой способ выполнить эту задачу? как, может быть, после извлечения его в список, «a», «p», «p», «l», «e», я могу мгновенно запустить функцию для обнаружения символа? Есть ли в stringr пакет, который выполняет эту работу?

Ответы [ 2 ]

3 голосов
/ 22 апреля 2020

Используя базу R, мы можем отделить каждый символ и вычислить их появление, используя table, и вернуть тот, который имеет максимальную частоту.

most_repeated_character <- function(x) {
  tab <- table(strsplit(x, '')[[1]])
  names(tab)[tab == max(tab)]
}

most_repeated_character('apple')
#[1] "p"
most_repeated_character('potato')
#[1] "o" "t"
2 голосов
/ 22 апреля 2020

Вот решение dplyr/stringr.

library(dplyr)
library(stringr)

x <- "apple"

x %>% 
  str_split("") %>% 
  table() %>% 
  as.data.frame() %>% 
  filter(Freq == max(Freq))
#  . Freq
#1 p    2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...