Given

data <-
  data.frame(
    address_1 = c(
      '경기도 수원시 장안구 파장1동 삼호빌라 B동',
      '수원시 정자2동 백설마을 주공아파트 571동 103-1023',
      '경기도 정자동 현준맨션 2동',
      '경기도 장안구 정자1동 e편한 맨션 310-7번지',
      '서울시 동작구 사당1동',
      '서울시 문래동 1가 200-1',
      '경상북도 안동시 안기동 20-1 ',
      '서문래2동 '
    ),
    expect = c(
      "경기도 수원시 장안구 파장1동",
      "수원시 정자2동",
      "경기도 정자동",
      "경기도 장안구 정자1동",
      "서울시 동작구 사당1동",
      "서울시 문래동",
      "경상북도 안동시 안기동",
      "서문래2동"
    ),
    stringsAsFactors = FALSE
  )

Function

go <- function(string) {
  trimws(strsplit(string, "(?<=[동] )", perl = T)[[1]][1])
}

Test

data$result <- sapply(data$address_1, go, USE.NAMES = F)
all.equal(data$expect, data$result)
## [1] TRUE

Output

data[c("address_1", "result")]
address_1 result
경기도 수원시 장안구 파장1동 삼호빌라 B동 경기도 수원시 장안구 파장1동
수원시 정자2동 백설마을 주공아파트 571동 103-1023 수원시 정자2동
경기도 정자동 현준맨션 2동 경기도 정자동
경기도 장안구 정자1동 e편한 맨션 310-7번지 경기도 장안구 정자1동
서울시 동작구 사당1동 서울시 동작구 사당1동
서울시 문래동 1가 200-1 서울시 문래동
경상북도 안동시 안기동 20-1 경상북도 안동시 안기동
서문래2동 서문래2동