2014-10-03 5 views
2

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

dm<-c("2December2005MOMENT55", "3December2005ROYALS56", "1July2012ANGELS57") 

Я хочу, чтобы сделать их как

Day Month Year 
2 December 2005 
3 December 2005 
1 July  2012 

Сплит и извлечь значения и поместить их под различными переменными.

Я пытался с помощью команды strsplit. Но я не мог действовать достаточно. Мне очень жаль, что у меня нет кодов для этого.

Надеюсь, у вас появятся какие-либо предложения команды или кода. Спасибо!

+3

Если вы используете даты, почему бы не использовать что-то вроде 'strptime (dm,"% d% B% Y ", tz =" GMT ")'? – A5C1D2H2I1M1N2O1R2T1

ответ

4
  1. Преобразовать в объект даты (формат '%d%B%Y' (учитывая при условии пример))
  2. Использование year, mday и month получить data.frame вы хотите

df <- data.frame(string = dm, date = as.Date(dm,format = '%d%B%Y')) 
df[c('Day','Month','Year')] <- with(df, list(mday(date), 
              month.name[month(date)], 
              year(date))) 
1

Вот решение regex:

library(stringr) 
str_match(dm, "(^[0-9]{1,3})([A-z]+)([0-9]{4})")[, 2:4] 
##  [,1] [,2]  [,3] 
## [1,] "2" "December" "2005" 
## [2,] "3" "December" "2005" 
## [3,] "1" "July"  "2012" 
Смежные вопросы