2014-10-22 2 views
0

이 주제는 이전에 언급되었지만 여전히 문제가 있음을 알고 있습니다. 나는 숫자 "2805"을 분리하고 나머지를 제거하려는부분 문자열 추출하기

string<-"abcd-ef-2805" 

:

나는 문자열을 가지고있다. 내가 "2805"를 분리하고 나머지를 제거하려는, 다시

string2<-"ABCD.EF.2805.03A.0IT.0734.13" 

:

마찬가지로, 나는 다른 문자열이있다.

감사합니다. stringr 패키지와

+2

당신이 항상 찾고 있습니다 2805에? 아니면 그냥 나쁜 예입니까? 'regmatches (string, regexpr ("2805", string))와 같은 것을 할 수 있기 때문에. –

+0

2805가 예상 한 결과를 설명하는 것이 필요하다. 첫 번째 번호입니까? 처음 4 자리 숫자? ...? – Roland

+0

그들은 항상 4 자리이지만 항상 2로 시작할 필요는 없습니다. 문자열을 기준으로 값을 추출하는 솔루션을 선호합니다. 이는 샘플간에 변경되지 않습니다. – CWeiss

답변

2

는 :

str_extract(string2,"[0-9]+") 

이 첫 번째 숫자 순서를 추출합니다. 순서가 4 자리의 항상 경우 편집에 따라, 그것은 더 나은 : 위치가 변하지 않고 위의 예는 당신이 단지 수와 관련이

str_extract(string2,"[0-9]{4}") 
0

경우

string<-"abcd-ef-2805" 
a<-unlist(strsplit(string,"-")) 
a[3] 

string2<-"ABCD.EF.2805.03A.0IT.0734.13" 
b<-unlist(strsplit(string2,"[.]")) 
b[3] 
관련 문제