2013-07-30 2 views
6

문자열 내의 특정 위치에서 문자를 추출하는 함수를 찾으려고합니다. 예를 들어, 나는 그것의 날짜와 긴 파일 이름을 가지고 있고, 나는 단지 날짜와 종료 할 :설정 위치에서 문자 추출

'LT50420331984221PAC00_B7.tif' 

나는 단지 '1984221'부분을합니다. 나는 복잡한 기능을 생각해 냈지만보다 우아한 해결책이 있는지 궁금해하고있었습니다. 당신이 당신의 문자열에서 날짜의 정확한 위치를 알고있는 경우

+0

어떻게 제공되는 정보로 보편적으로 대답 할 수 있는지는 알 수 없습니다. 날짜 부분은 항상'n' 문자 다음에 시작합니까? 항상'19XX' 또는'20XX'로 시작 하시겠습니까? 항상'n' 문자로 실행됩니까? 더 쉽게 대답 할 수있는 정보를 더 제공 할 수 있습니까? – thelatemail

+0

OP에 솔루션을 추가 할 수 있습니까? – agstudy

+0

모든 것이 R 프로그래밍 wikibook에서 설명됩니다 : http://en.wikibooks.org/wiki/R_Programming/Text_Processing – PAC

답변

13

당신은 예를 들어

substr('LT50420331984221PAC00_B7.tif', 10, 16) 
+1

날짜 부분이 항상 동일한 위치에 있으면, 이것이 제가 사용하는 것입니다. – Jesse

3

사용할 수 있습니다

여기
gsub('(.*)([0-9]+{7})[A-Z].*','\\2','LT50420331984221PAC00_B7.tif') 
"1984221" 

나는 날짜가 대문자 전 7 자리입니다 있다고 가정합니다.

+0

문자열의 길이를 가정한다면'substr '을 통해'sub'를 사용하면 어떤 이점이 있습니까? –

+1

@RicardoSaporta 문자열의 길이를 가정하지 않습니다. 길이는 특정 형식의 날짜 길이입니다. 이 날짜의 위치를 ​​추측합니다. – agstudy

+0

예, 우리는 다른 용어를 사용하여 똑같은 것을 말하고 있습니다. 나는 당신이'substr '을 사용하여 가질 수없는이 특정 문맥에서'sub'를 사용함으로써 얻을 수있는 것을 궁금하게 생각하고 있었습니까? –