2017-11-03 11 views
-3

R 질문에서 아마도 멍청한 grepl이 있습니다. 죄송합니다, 이것이 그렇게 쉬운 것 같아서 - 분명히 뭔가를 놓친 것 같습니다.데이터 프레임의 모든 N 번째 요소 매칭

문자 data.frame을 가지고 있습니다. 전화 번호는 test입니다. test 중 일부는 아래에 인쇄 된 다음 ctn_id의 6 번째 문자가 7 인 경우, 결과를 표시합니다

userid st_dt_tm   ctnid 
PULCHNT  11/1/2017 16:54 503050724908.00 
PULCHNT  11/1/2017 17:47 503057701271.00 
KNIGHTJ  11/1/2017 22:13 503050726708.00 
CACEREB  11/1/2017 16:59 503050719729.00 
CONCEPM  11/1/2017 19:33 503050725209.00 
HWHITAK  11/1/2017 23:08 93050704897.00 
OPOKUGE  11/1/2017 11:11 503040703209.00 
NIEMIES  11/1/2017 11:59 503050700514.00 
CACEREB  11/1/2017 13:23 503050710931.00 
FOSTERV  11/1/2017 20:22 503050715018.00 

내가 데이터 프레임의 ctn_id 섹션으로보고 말하는 테스트를 수행합니다.

나는 sub을 사용하여이 작업을 시도했지만 특정 요소 번호를 사용하면 다소 복잡합니다. // 합계 : 문자열의 시작과 다음 수에서 모든 다섯 문자와 일치하는 grepl를 사용

+2

나는 ['substr'] (HTTPS 당신이 grepl''필요가 있다고 생각하고,하지 않습니다. ethz.ch/R-manual/R-devel/library/base/html/substr.html) 더 도움이 될 것입니다 – bouncyball

+0

어떻게 substr에서 특정 문자를 찾을 수 있습니까? 제 경우에는 6 번째 문자가 7이되어야합니다. 아마도 substr (테스트 $ ctn_id, 6, 6)입니다. 여기서 6과 6은 시작과 끝입니까? –

+1

도움말 파일을 읽었습니까? 예 : 'substr (x = c ('fooba7haz', 'fooba8haz'), 시작 = 6, 정지 = 6) == "7"' – bouncyball

답변

0

7

grepl("^.{5}7", df1$ctnid) 
df1$ctnid[grepl("^.{5}7", df1$ctnid)] 

[1] 503057701271 93050704897