2013-07-31 6 views
3

내가 <three digit number>
내가 세 자리 숫자

foo <- grepl("<^[0-9]{3}$>", log1[,2]) 
others <- log1[!foo,] 

을 썼다 포함 된 행 서브 세트를 필요가 포함 된 행을 찾을 난 그냥 치트 시트를 사용하고 ... 정규식을 사용하는 방법을 정말 잘 모르겠어요 Google. 나는 <과> 문자가 그것을 버리고 있다고 생각한다.

+4

"트리 숫자"에 대해 배우려면이 질문을 클릭하십시오. 나는 오타라고 실망했다. –

답변

3

^$ 기호는 각각 문자열의 시작과 끝을 나타냅니다. 그 전후에 어떤 것도 매치해서는 안됩니다.

패턴이 포함 된 행을 사용하려면 앵커를 전혀 사용하지 않아야합니다. <[0-9]{3}> (또는 단축하려면 <\\d{3}>)

+0

고마워, 그게 내가하려고했던거야하지만이 오류가있어 : '오류 :'\ d '는 ""<\ d "를 시작하는 문자열의 인식 할 수없는 이스케이프입니다. – camelarms

+0

@camelarms : 죄송합니다. r regex는 숫자의 줄임말을 지원하지 않습니다. 다시 [[0-9]'로 바꿀 것입니다. –

+1

대신에 \\ d를 사용해보십시오 – arshajii

6

거의 들었습니다. 그것은 약 anchors (^$)을 읽는 당신을 behoove 수

 
^<[0-9]{3}>$ 

보십시오.

1

저는 후계자를 위해 OP의 명시된 질문에 대한 묵시적 답변이라고 생각하는 내용에 기여할 것이라고 생각했습니다.

OP는 두 번째 열이 3 자리 정수를 포함하는 데이터 프레임의 행을 제외하려고합니다. 이것은과 같이, 각 번호의 문자 수를 계산하기 위해 'NCHAR'기능을 사용하여 아주 쉽게 수행 할 수 있습니다

others <- log1[nchar(log1[,2])!=3,] 

우리는 단순히 열 2의 각 행에 포함 된 문자의 수와 배열을 만드는 숫자가 3이 아니면 그 행을 선택하십시오.