конвертировать письма в номера

У меня есть куча писем, и я не могу для жизни понять, как преобразовать их в их эквивалент числа.

letters[1:4] 

Существует ли функция

 numbers['e'] 

который возвращается

 5 

или что-то определенное пользователем (например, 1994)?

Я хочу преобразовать все 26 букв в определенное значение.

Я не знаю о «заранее построенной» функции, но такое сопоставление довольно легко настроить с помощью match . Для конкретного примера, который вы даете, сопоставляя букву с ее положением в алфавите, мы можем использовать следующий код:

 myLetters <- letters[1:26] match("a", myLetters) [1] 1 

Буквально так же легко ассоциировать другие значения с буквами. Ниже приведен пример случайного выбора целых чисел.

 # assign values for each letter, here a sample from 1 to 2000 set.seed(1234) myValues <- sample(1:2000, size=26) names(myValues) <- myLetters myValues[match("a", names(myValues))] a 228 

Отметим также, что этот метод может быть расширен и для упорядоченных наборов букв (строк).

Создайте вектор поиска и используйте простое подмножество:

 x <- letters[1:4] lookup <- setNames(seq_along(letters), letters) lookup[x] #abcd #1 2 3 4 

Используйте unname если вы хотите удалить имена.

Вы можете попробовать эту функцию:

 letter2num <- function(x) {utf8ToInt(x) - utf8ToInt("a") + 1L} 

Вот короткий тест:

 letter2num("e") #[1] 5 set.seed(123) myletters <- letters[sample(26,8)]] #[1] "h" "t" "j" "u" "w" "a" "k" "q" unname(sapply(myletters, letter2num)) #[1] 8 20 10 21 23 1 11 17 

Функция вычисляет код utf8 буквы, на которую он передан, вычитает из этого значения код utf8 буквы «a» и добавляет к этому значению номер один, чтобы гарантировать, что существует соглашение об индексировании R, согласно которому нумерация букв начинается с 1, а не 0.

Код работает, потому что числовая последовательность кодов utf8, представляющих буквы, соответствует буквенному порядку.


Для заглавных букв вы можете использовать, соответственно,

 LETTER2num <- function(x) {utf8ToInt(x) - utf8ToInt("A") + 1L} 

Кажется здесь подходящей функция.

 which(letters == 'e') #[1] 5 

спасибо за все идеи, но я думдум.

Вот что я сделал. Сделано сопоставление от каждой буквы к определенному числу, затем вызывается каждая буква

 df=data.frame(L=letters[1:26],N=rnorm(26)) df[df$L=='e',2] 
  • Извлечь последнее слово в строке в R
  • Как я могу прерывать текущий код в R с помощью команды клавиатуры?
  • условие имеет длину> 1, и только первый элемент будет использоваться в if else statement
  • Альтернатива expand.grid для data.frames
  • Перекодирование переменных с помощью R
  • Стандартный способ удаления нескольких элементов из фрейма данных
  • Разделить вектор по его последовательностям
  • cbind a df с пустым df (cbind.fill?)
  • Объедините (rbind) кадры данных и создайте столбец с именем исходных кадров данных
  • если / else строит внутренние и внешние функции
  • R усиливает местный охват
  • Interesting Posts

    Как записать в буфер памяти с файлом *?

    URL-fragment и 302 перенаправления

    Как применять определенные правила CSS только к Chrome?

    Невозможно создать и запустить проект тестирования андроида, созданный с помощью «ant create test-project», когда тестируемый проект имеет банки в каталоге libs

    Как сохранить процессор Cool, не добавляя новое устройство охлаждения?

    VirtualBox: установите сетевой адаптер для эксклюзивного использования гостевой виртуальной машины

    Как использовать dom-repeat с объектами вместо массивов в Polymer 1.0?

    WPF MVVM просматривает просмотры

    Как добавить ярлык к главному экрану в android программно

    Как создать отдельную подсеть для беспроводного доступа?

    Глобальный обработчик исключений TAP

    Символ ‘:’, шестнадцатеричное значение 0x3A, не может быть включен в имя

    FTP-клиент в окнах, которые сохраняют пароль сеанса в зашифрованном тексте

    Уместно ли распространять Control для обеспечения неизменно безопасной функции Invoke / BeginInvoke?

    Разные порты на одном сервере считаются междоменными? (Аякс-накрест)

    Давайте будем гением компьютера.