2017-03-12 3 views
0

이것은 첫 번째 질문이므로 실수를 저 지르십시오. 주소가 한 줄에 있고 많은 값과 오류가있는 데이터 프레임이 있습니다.패턴 값이 true이면 필드를 업데이트하십시오.

주소

  • Braemor 드라이브, 클론 타프, Co.Dublin
  • 초원 애비뉴, Dundrum
  • Philipsburgh 애비뉴, 마리노
  • 머틀 광장, 해안

내가 좋아하는 것 예를 들어 마리노 (Marino), 페어 뷰 (Fairview) 또는 클로 (Clo)가 포함 된 경우 주소의 값에 특정 값이 포함 된 경우 새로운 필드 "지구"를 추가하십시오 교육구가 더블린에 있어야합니다. 3

Dublin3 <- c("Marino", "Fairview", "Clontarf") 
matches <- unique (grep(paste(Dublin3,collapse="|"), 
DubPPReg$Address, value=TRUE)) 

R을 사용하여 일치하는 항목이있는 지구의 가치를 어떻게 업데이트 할 수 있습니까?

답변

1
# I've created example data frame with column Adress 
df <- data.frame(Adress = c("Braemor Drive", 
          "Clontarf", 
           "Co.Dublin", 
           "Meadow Avenue", 
           "Dundrum", 
           "Philipsburgh Avenue", 
           "Marino", 
           "Myrtle Square", "The Coast")) 
# And vector Dublin 
Dublin3 <- c("Marino", "Fairview", "Clontarf") 

# Match names in column Adress and vector Dublin 3 
df$District <- ifelse(df$Adress %in% Dublin3, "Dublin 3",FALSE) 

    df 
       Adress District 
1  Braemor Drive FALSE 
2   Clontarf Dublin 3 
3   Co.Dublin FALSE 
4  Meadow Avenue FALSE 
5    Dundrum FALSE 
6 Philipsburgh Avenue FALSE 
7    Marino Dublin 3 
8  Myrtle Square FALSE 
9   The Coast FALSE 

대신 FALSE 당신은 뭔가 다른 (예를 들어, NA)를 선택할 수 있습니다.

편집 : 데이터 벡터에 있다면 당신은이

match <- ifelse(grepl("Marino|Fairview|Clontarf", df, ignore.case = T), "Dublin 3",FALSE) 

및 출력과 같은 grepl를 사용하여 maches을 찾을 수있는이

df 
[1] "Braemor Drive, Churchtown, Co.Dublin" 
[2] "Meadow Avenue, Clontarf, Dublin 14" 
[3] "Sallymount Avenue, Ranelagh"   
[4] "Philipsburgh Avenue, Marino" 

과 같은

df <- c("Braemor Drive, Churchtown, Co.Dublin", 
     "Meadow Avenue, Clontarf, Dublin 14", 
     "Sallymount Avenue, Ranelagh", "Philipsburgh Avenue, Marino") 

[1] "FALSE" "Dublin 3" "FALSE" "Dublin 3" 

당신이 찾고있는 일치하는 이름 중 하나 또는 모두 (즉, Marino, Fairview 또는 Clontarf)는 df에서 두 번째 및 네 번째 행에 있습니다.

+0

대단히 감사합니다. Miha. 코드 예제는 시도 할 때 완벽하게 작동하지만 내 예제에서는 제대로 작동하지 않습니다. "Philipsburgh Avenue, Marino, Dublin 3"의 전체 주소와 정확하게 일치하면 작동합니다. 그러나 본문의 한 단어가 아닙니다. – ClareMc

+0

한 단어를 'Dublin3' 벡터에 정의/삽입하고 코드를 다시 실행하십시오. – Miha

+0

나는 Dublin3 <하려고 할 때 - C ("도로", "페어 뷰", "클론 타프") 안양 $ 지구 <- ifelse (% Dublin3, "더블린 3"에서 $ ADRESS DF %, FALSE) 에 위 예를 들어, 정확한 결과 인 "Clontarf"를 제외한 모든 항목에 대해 결과는 false입니다. – ClareMc

관련 문제