Подсчитайте каждый символ и сохраните в виде пары <K, V> - PullRequest
0 голосов
/ 03 июля 2018

Как подсчитать уникальные символы из заданной строки и сохранить ее как пару ключ-значение в R-программировании с использованием базового пакета? Здесь ключ будет отличительным символом, а значение будет вхождением символа в строку.

Допустим, у меня есть строка ввода "hello". Ожидаемый результат будет:

h -> 1
e -> 1
l -> 2
o -> 1

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Мы можем использовать table для подсчета частот после разделения строки на буквы. Простой sapply может преобразовать его в список при необходимости, т.е.

table(strsplit('hello', ''))
#e h l o 
#1 1 2 1 

#or

sapply(table(strsplit('hello', '')), list)
#$`e`
#[1] 1

#$h
#[1] 1

#$l
#[1] 2

#$o
#[1] 1
0 голосов
/ 03 июля 2018

R не имеет встроенной поддержки hashmap, хотя существует пакет hashmap. Тем не менее, мы можем достаточно легко использовать список здесь для имитации функциональности хеширования:

lst <- list()
for (i in strsplit('hello', '')[[1]]) {
    lst[[i]] <- ifelse(is.null(lst[[i]]), 1, lst[[i]] + 1)
}

lst
$h
[1] 1

$e
[1] 1

$l
[1] 2

$o
[1] 1

Демо

Обратите внимание, что теперь доступ к ключу на карте означает просто доступ к записи в списке, например, lst$l возвращает 2, потому что l встречается дважды в строке hello.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...