2014-10-03 2 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, mdaymonth 당신이

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

을 원하는 data.frame를 얻을 수 다음은 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" 
관련 문제