Лучший способ извлечь одну букву из каждой строки и создать новый столбец в R?

#r #database

#r #База данных

Вопрос:

Ниже приведен отрывок из данных, с которыми я работаю. У меня возникли проблемы с поиском способа извлечения последней буквы из sbp.id столбец и, используя результаты, добавьте новый столбец в приведенный ниже фрейм данных под названием «пол». Сначала я пытался использовать grepl для разделения строк, оканчивающихся на F, и строк, оканчивающихся на M, но не мог понять, как использовать это для создания нового столбца только с M или F, в зависимости от того, какая из них является последней буквой каждой строки в таблице. sbp.id колонка

 sbp.id newID 
125F   125 
13000M 13000
13120M 13120
13260M 13260
13480M 13480
 

Ответ №1:

Другой способ, если вы знаете, что вам нужна последняя буква, независимо от того, являются ли другие символы числами, цифрами или даже если все элементы имеют разную длину, но вам все равно нужен только последний символ в строке из каждой строки:

 df$sex <- substr(df$sbp.id, nchar(df$sbp.id), nchar(df$sbp.id))
 

Это работает, потому что все функции векторизованы по умолчанию.

Ответ №2:

Используя регулярное выражение, вы можете извлечь последнюю часть из sbp.id

 df$sex <- sub('.*([A-Z])

Или другим способом было бы удалить все числа.

 df$sex <- sub('\d ', '', df$sbp.id)
 


, '\1', df$sbp.id)
#Also
#df$sex <- sub('.*([MF])Или другим способом было бы удалить все числа.


, '\1', df$sbp.id)

Или другим способом было бы удалить все числа.