Замените 'A' на 1, 'B' на 2 в столбце R dataframe - PullRequest
1 голос

У нас есть столбец фрейма данных с буквами от A до Z

df$Col1 <- c("B", "C", "Q", ... , "A")

Я хочу заменить эти буквы на цифры 1-26.

Естественно, я мог бы просто сделать следующие 26 раз, но это неэффективно и не красиво.

df$Col1  <- gsub("A","1",df$Col1)

Как лучше всего подойти к этой проблеме?

Ответы [ 3 ]

2 голосов
/ 28 мая 2020

Для развлечения:

sapply(Col1, utf8ToInt, USE.NAMES = FALSE) - 64
[1]  2  3 17  1
2 голосов
/ 28 мая 2020

Вы можете использовать match и встроенную константу LETTERS:

Col1 <- c("B", "C", "Q", "A")

as.character(match(Col1, LETTERS))
#> [1] "2"  "3"  "17" "1" 
1 голос
/ 28 мая 2020

Другой способ сделать это в базе R - создать таблицу поиска.

LookUp = 1:26
names(LookUp) = LETTERS
Replacement = LookUp[Data]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...