2014-09-22 2 views
0

열에 KASARAGOD의 모든 인스턴스에 대해 모든 데이터의 이름을 "KAS"로 변경해야하는 데이터 세트가 있습니다. 인스턴스가 발견되면 해당 열의 전체 내용을 "KAS"로 바꿔야합니다.전체 문자열을 하나의 단일 문자로 바꾸기 R

P O, PIN: 671543,KASARAGOD 단지

KAS 내가 어떤 명령을 사용해야 할 수?

샘플 데이터 :

G05 G06 G07 G08 G09 G10 address_2 
A A+ A+ A+ A+ A+ KUMBADAJE P O, PIN: 671551, KASARAGOD 
A B B B+ A A MALLAM P O, PIN: 671542, KASARAGOD 
B+ B B+ A+ C+ B+ KUMBADAJE P O, PIN: 671551, KASARAGOD 
B+ B+ B B+ A A+ MOVVAR P O, PIN: 671543, KASARAGOD 
B B B B+ A+ A+ MOVVAR P O, PIN: 671543, KASARAGOD 
A+ A+ A+ A+ A+ A+ MOVVAR P O, PIN: 671543, KASARAGOD 
B+ B+ B A B+ A YETHADKA P O, PIN: 671551, KASARAGOD 
C C C C C A MOVVAR P O, PIN: 671543, KASARAGOD 
A+ A+ A+ A+ A+ A+ MOVVAR P O, PIN: 671543, KASARAGOD 
+0

데이터 세트가 테이블 인 경우 처음 몇 줄을 게시 할 수 있습니까? – blakeoft

+0

나는 늦은 답장을 위해 유감스럽게도 테이블을 제공했다. help help – PSraj

답변

1

첫 번째 생각은 gsub입니다. 데이터 프레임 에듀를 호출하면 바로 (RAN)에,이

G05 G06 G07 G08 G09 G10 address_2 
    A A+ A+ A+ A+ A+  KAS 
    A B B B+ A A  KAS 
B+ B B+ A+ C+ B+  KAS 
B+ B+ B B+ A A+  KAS 
    B B B B+ A+ A+  KAS 
A+ A+ A+ A+ A+ A+  KAS 
B+ B+ B A B+ A  KAS 
    C C C C C A  KAS 
A+ A+ A+ A+ A+ A+  KAS 
+0

'(RAN)'이 요청 된 출력 일 때'RAN'을 생성합니다. – Hugh

+2

나는 당신이 의미하는 바를 알고 있지만, 두 가지 상충되는 것이 요구됩니다. 하나는 괄호가없고 하나는 괄호가 없습니다. – blakeoft

+0

좋은 점, 괄호가 실제로 문자열의 일부인지 또는 열 구분 기호인지 여부는 확실하지 않습니다. – Hugh

2

샘플 데이터 :

x <- c("(P O, PIN: 671543,RANCHI)", "(P O, PIN: 671543,BLAH)", "(P O, PIN: 67338,RANCITY)", "(P O, PIN: 671543,BBBCHI)") 

사용해 볼 수 greplifelse

x <- ifelse(grepl("RANCHI", x), "(RAN)", x) 
x 
## [1] "(RAN)" "(P O, PIN: 671543,BLAH)" "(P O, PIN: 67338,RANCITY)" "(P O, PIN: 671543,BBBCHI)" 

하거나 grep (또는 grepl)

x[grep("RANCHI", x)] <- "(RAN)" 
x 
## [1] "(RAN)" "(P O, PIN: 671543,BLAH)" "(P O, PIN: 67338,RANCITY)" "(P O, PIN: 671543,BBBCHI)" 
+0

@DavidArenburg +1 감사합니다. 당신의 솔루션은 매우 산뜻합니다. – jalapic

2

이 괄호 안에 RANCHI을 포함하는 텍스트의 모든 인스턴스를 대체 당신에게 줄 것이다

edu$address_2 <- gsub(".*KASARAGOD.*", "KAS", edu$address_2) 

을 시도합니다.

x <- gsub("\\(.*RANCHI.*\\)", "\\(RAN\\)", x) 
관련 문제