step 4
njdata <- jdata %>% mutate(hypenv = gsub("(\\d{3})(\\d{2})(\\d{5})$", "\\1-\\2-\\3", jdata$사업자번호...12))
head(njdata)
## # A tibble: 6 x 38
## No 전표번호 구분 상세구분 문서구분 문서상세구분 `출고/회수일자`
## <chr> <chr> <chr> <chr> <chr> <chr> <dttm>
## 1 ▶ 202104-0000789 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 2 2 202104-0000790 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 3 491 202104-0000787 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 4 492 202104-0000788 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 5 537 202104-0000887 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 6 538 202104-0000888 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## # ... with 31 more variables: 출고/회수등록일자 <dttm>, (주)녹십자 <chr>,
## # 대리점명 <chr>, 납품처명 <chr>, 사업자번호...12 <chr>,
## # 사업자번호...13 <chr>, 납품창고 <chr>, 배송단위 <chr>, 배송수량 <dbl>,
## # 총수량 <dbl>, 부서1 <chr>, 부서2 <lgl>, 제품코드 <chr>, 제품명 <chr>,
## # LOT_NO <chr>, SERIAL_NO <chr>, 유효기간 <chr>, 배송 <chr>, 배송일자 <dttm>,
## # 지시번호 <chr>, 빌링처 <chr>, 빌링처명 <chr>, 주문번호 <chr>,
## # 공급처_환산수량 <dbl>, 공급처_배송단위 <chr>, 공급처_판매단가 <dbl>,
## # 공급처_판매단가(EA) <dbl>, Clip <chr>, ...36 <chr>, Custid <dbl>,
## # hypenv <chr>
njdata[,c(37,38)] %>% head() %>% kbl %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 15, full_width = F)
|
Custid
|
hypenv
|
|
1000307
|
219-82-00046
|
|
1000307
|
219-82-00046
|
|
1000307
|
219-82-00046
|
|
1000307
|
219-82-00046
|
|
1000307
|
138-82-02667
|
|
1000307
|
138-82-02667
|
njdata <- njdata %>% mutate(newcodev = paste0(njdata$Custid, njdata$hypenv))
head(njdata)
## # A tibble: 6 x 39
## No 전표번호 구분 상세구분 문서구분 문서상세구분 `출고/회수일자`
## <chr> <chr> <chr> <chr> <chr> <chr> <dttm>
## 1 ▶ 202104-0000789 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 2 2 202104-0000790 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 3 491 202104-0000787 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 4 492 202104-0000788 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 5 537 202104-0000887 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 6 538 202104-0000888 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## # ... with 32 more variables: 출고/회수등록일자 <dttm>, (주)녹십자 <chr>,
## # 대리점명 <chr>, 납품처명 <chr>, 사업자번호...12 <chr>,
## # 사업자번호...13 <chr>, 납품창고 <chr>, 배송단위 <chr>, 배송수량 <dbl>,
## # 총수량 <dbl>, 부서1 <chr>, 부서2 <lgl>, 제품코드 <chr>, 제품명 <chr>,
## # LOT_NO <chr>, SERIAL_NO <chr>, 유효기간 <chr>, 배송 <chr>, 배송일자 <dttm>,
## # 지시번호 <chr>, 빌링처 <chr>, 빌링처명 <chr>, 주문번호 <chr>,
## # 공급처_환산수량 <dbl>, 공급처_배송단위 <chr>, 공급처_판매단가 <dbl>,
## # 공급처_판매단가(EA) <dbl>, Clip <chr>, ...36 <chr>, Custid <dbl>,
## # hypenv <chr>, newcodev <chr>
njdata[,c(37:39)] %>% head() %>% kbl %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 15, full_width = F)
|
Custid
|
hypenv
|
newcodev
|
|
1000307
|
219-82-00046
|
1000307219-82-00046
|
|
1000307
|
219-82-00046
|
1000307219-82-00046
|
|
1000307
|
219-82-00046
|
1000307219-82-00046
|
|
1000307
|
219-82-00046
|
1000307219-82-00046
|
|
1000307
|
138-82-02667
|
1000307138-82-02667
|
|
1000307
|
138-82-02667
|
1000307138-82-02667
|
njdata <- njdata %>% mutate(new = gsub("NA", "", as.character(njdata$newcodev)))
head(njdata)
## # A tibble: 6 x 40
## No 전표번호 구분 상세구분 문서구분 문서상세구분 `출고/회수일자`
## <chr> <chr> <chr> <chr> <chr> <chr> <dttm>
## 1 ▶ 202104-0000789 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 2 2 202104-0000790 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 3 491 202104-0000787 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 4 492 202104-0000788 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 5 537 202104-0000887 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## 6 538 202104-0000888 출고 정상출고 매입제품 일반 2021-04-05 00:00:00
## # ... with 33 more variables: 출고/회수등록일자 <dttm>, (주)녹십자 <chr>,
## # 대리점명 <chr>, 납품처명 <chr>, 사업자번호...12 <chr>,
## # 사업자번호...13 <chr>, 납품창고 <chr>, 배송단위 <chr>, 배송수량 <dbl>,
## # 총수량 <dbl>, 부서1 <chr>, 부서2 <lgl>, 제품코드 <chr>, 제품명 <chr>,
## # LOT_NO <chr>, SERIAL_NO <chr>, 유효기간 <chr>, 배송 <chr>, 배송일자 <dttm>,
## # 지시번호 <chr>, 빌링처 <chr>, 빌링처명 <chr>, 주문번호 <chr>,
## # 공급처_환산수량 <dbl>, 공급처_배송단위 <chr>, 공급처_판매단가 <dbl>,
## # 공급처_판매단가(EA) <dbl>, Clip <chr>, ...36 <chr>, Custid <dbl>,
## # hypenv <chr>, newcodev <chr>, new <chr>
njdata[,c(37:40)] %>% head() %>% kbl %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 15, full_width = F)
|
Custid
|
hypenv
|
newcodev
|
new
|
|
1000307
|
219-82-00046
|
1000307219-82-00046
|
1000307219-82-00046
|
|
1000307
|
219-82-00046
|
1000307219-82-00046
|
1000307219-82-00046
|
|
1000307
|
219-82-00046
|
1000307219-82-00046
|
1000307219-82-00046
|
|
1000307
|
219-82-00046
|
1000307219-82-00046
|
1000307219-82-00046
|
|
1000307
|
138-82-02667
|
1000307138-82-02667
|
1000307138-82-02667
|
|
1000307
|
138-82-02667
|
1000307138-82-02667
|
1000307138-82-02667
|
njdata <- njdata[c(40,10,11,1:9,12:39)]
head(njdata)
## # A tibble: 6 x 40
## new 대리점명 납품처명 No 전표번호 구분 상세구분 문서구분 문서상세구분
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 100030~ (주)세~ 서울아산~ ▶ 202104-~ 출고 정상출고 매입제품 일반
## 2 100030~ (주)세~ 서울아산~ 2 202104-~ 출고 정상출고 매입제품 일반
## 3 100030~ (주)세~ 서울아산~ 491 202104-~ 출고 정상출고 매입제품 일반
## 4 100030~ (주)세~ 서울아산~ 492 202104-~ 출고 정상출고 매입제품 일반
## 5 100030~ (주)세~ 한림대학~ 537 202104-~ 출고 정상출고 매입제품 일반
## 6 100030~ (주)세~ 한림대학~ 538 202104-~ 출고 정상출고 매입제품 일반
## # ... with 31 more variables: 출고/회수일자 <dttm>, 출고/회수등록일자 <dttm>,
## # (주)녹십자 <chr>, 사업자번호...12 <chr>, 사업자번호...13 <chr>,
## # 납품창고 <chr>, 배송단위 <chr>, 배송수량 <dbl>, 총수량 <dbl>, 부서1 <chr>,
## # 부서2 <lgl>, 제품코드 <chr>, 제품명 <chr>, LOT_NO <chr>, SERIAL_NO <chr>,
## # 유효기간 <chr>, 배송 <chr>, 배송일자 <dttm>, 지시번호 <chr>, 빌링처 <chr>,
## # 빌링처명 <chr>, 주문번호 <chr>, 공급처_환산수량 <dbl>,
## # 공급처_배송단위 <chr>, 공급처_판매단가 <dbl>, 공급처_판매단가(EA) <dbl>,
## # Clip <chr>, ...36 <chr>, Custid <dbl>, hypenv <chr>, newcodev <chr>
njdata[,c(1:6)] %>% head() %>% kbl %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 15, full_width = F)
|
new
|
대리점명
|
납품처명
|
No
|
전표번호
|
구분
|
|
1000307219-82-00046
|
(주)세원메디
|
서울아산병원
|
▶
|
202104-0000789
|
출고
|
|
1000307219-82-00046
|
(주)세원메디
|
서울아산병원
|
2
|
202104-0000790
|
출고
|
|
1000307219-82-00046
|
(주)세원메디
|
서울아산병원
|
491
|
202104-0000787
|
출고
|
|
1000307219-82-00046
|
(주)세원메디
|
서울아산병원
|
492
|
202104-0000788
|
출고
|
|
1000307138-82-02667
|
(주)세원메디
|
한림대학교성심병원(평촌)
|
537
|
202104-0000887
|
출고
|
|
1000307138-82-02667
|
(주)세원메디
|
한림대학교성심병원(평촌)
|
538
|
202104-0000888
|
출고
|
- 하이픈을 넣기 위해 [사업자 번호 12]변수를 사용함.
- (\d{4})는 몇자리 숫자를 사용하는지 구분함. 4는 앞에서 4번째 숫자까지 한덩어리로 사용함.
- \1\2\3는 3개의 덩어리로 구분된 숫자들을 어떻게 연결할지 결정함.
- njdata[c(40,10,11,1:9,12:39)]는 변수 순서를 바꾸는 코드임.
- 일련번호에 포함된 NA라는 글자를 공백으로 변환시킴.
step 5
index2 <- as.data.frame(unique(data2[,c(1,8:10)]))
dim(index2)
## [1] 5343 4
index2[c(1:6),] %>% head() %>% kbl %>% kable_styling(bootstrap_options = c("striped", "hover", "condensed"), font_size = 15, full_width = F)
|
Lookup
|
Unified VAT
|
Unified Name
|
Enduser-SAPID
|
|
1043268101-13-12172
|
1000000013
|
서울/경기B_DPS
|
9999999
|
|
1043268542-87-00558
|
1000000013
|
서울/경기B_DPS
|
9999999
|
|
1027960
|
1000000013
|
서울/경기B_DPS
|
9999999
|
|
1027858117-94-12540
|
1000000013
|
서울/경기B_DPS
|
9999999
|
|
1027858119-87-01129
|
1000000013
|
서울/경기B_DPS
|
9999999
|
|
1027858120-12-09216
|
1000000013
|
서울/경기B_DPS
|
9999999
|
fdata <- left_join(njdata, index2, by = c("new" = "Lookup"))
dim(fdata)
## [1] 25828 43
## # A tibble: 6 x 43
## new 대리점명 납품처명 No 전표번호 구분 상세구분 문서구분 문서상세구분
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 100030~ (주)세~ 서울아산~ ▶ 202104-~ 출고 정상출고 매입제품 일반
## 2 100030~ (주)세~ 서울아산~ 2 202104-~ 출고 정상출고 매입제품 일반
## 3 100030~ (주)세~ 서울아산~ 491 202104-~ 출고 정상출고 매입제품 일반
## 4 100030~ (주)세~ 서울아산~ 492 202104-~ 출고 정상출고 매입제품 일반
## 5 100030~ (주)세~ 한림대학~ 537 202104-~ 출고 정상출고 매입제품 일반
## 6 100030~ (주)세~ 한림대학~ 538 202104-~ 출고 정상출고 매입제품 일반
## # ... with 34 more variables: 출고/회수일자 <dttm>, 출고/회수등록일자 <dttm>,
## # (주)녹십자 <chr>, 사업자번호...12 <chr>, 사업자번호...13 <chr>,
## # 납품창고 <chr>, 배송단위 <chr>, 배송수량 <dbl>, 총수량 <dbl>, 부서1 <chr>,
## # 부서2 <lgl>, 제품코드 <chr>, 제품명 <chr>, LOT_NO <chr>, SERIAL_NO <chr>,
## # 유효기간 <chr>, 배송 <chr>, 배송일자 <dttm>, 지시번호 <chr>, 빌링처 <chr>,
## # 빌링처명 <chr>, 주문번호 <chr>, 공급처_환산수량 <dbl>,
## # 공급처_배송단위 <chr>, 공급처_판매단가 <dbl>, 공급처_판매단가(EA) <dbl>,
## # Clip <chr>, ...36 <chr>, Custid <dbl>, hypenv <chr>, newcodev <chr>,
## # Unified VAT <chr>, Unified Name <chr>, Enduser-SAPID <chr>
fdata <- fdata[,c(1:3,41:43,4:40)]
head(fdata[,c(1:6)])
## # A tibble: 6 x 6
## new 대리점명 납품처명 `Unified VAT` `Unified Name` `Enduser-SAPID`
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 10003072~ (주)세원~ 서울아산병원 2198200046 서울아산병원 1000287
## 2 10003072~ (주)세원~ 서울아산병원 2198200046 서울아산병원 1000287
## 3 10003072~ (주)세원~ 서울아산병원 2198200046 서울아산병원 1000287
## 4 10003072~ (주)세원~ 서울아산병원 2198200046 서울아산병원 1000287
## 5 10003071~ (주)세원~ 한림대학교~ 1388202667 한림대평촌성심~ 1000174
## 6 10003071~ (주)세원~ 한림대학교~ 1388202667 한림대평촌성심~ 1000174
#write.csv(fdata, "result.csv")