이제 본격적으로 R언어로 데이터 비식별화 처리 코드를 공부해 볼 것이다!
참고 자료1
https://www.youtube.com/watch?v=7AeOH6LqWJY
https://www.youtube.com/watch?v=ZisbIW-yIrI&list=PLMmajofUjYdEM22trAt4w0N6yvFfyliNg&index=3
이 글에서 참고하는 자료가 총 3가지인데 먼저 해볼 위의 2가지 영상은 기초 단계이다. 이 영상들로 먼저 기본적으로 어떻게 코드가 짜일 수 있는지 공부하고 실습해본 후 팀원들과 코드를 짜볼 것이다.
이름 마스킹처리
비식별화 처리 방법 중 가장 기본인 가명화이다. 일일이 엑셀 파일에서 이름을 가명처리 하기는 힘드니 코드를 이용해보겠다.

영상을 따라 임의로 만든 엑셀 파일이다. 이름 벡터 형식으로 r에 입력해본다.

입력 후 앞의 개념에서 배운대로 데이터 프레임으로 변환하는게 좋으니 데이터 프레임으로 변환해준다.
데이터프레임명 = data.frame(데이터프레임으로 바꿀 것)
※데이터 프레임 복습!
데이터 프레임으로 변환하는 것은 개념 학습에서 이미 배웠지만 그래도 여기서 한번 더 짚고 넘어간다!
아래 사진을 참고하여 데이터 프레임이 어떤 구조로 되어있는지 알 수 있다.


df라는 이름의 데이터 프레임으로 변환 후 "View(데이터프레임명)"으로 확인해보면 아래와 같이 잘 변환된 것을 볼 수 있다.

이제 지울 대상들이 있는 목록이 필요하다. 여기서 이 영상의 단점...이 나온다. 여기서는 지울 대상들의 리스트를 반복문으로 돌려서 해결하는데 목록이 더 많을 때는 굉장히 비효율적이다. 그치만 일단 기초 단계에서 먼저 학습해보는 것이니 데이터 비식별화의 원리를 생각해보며 실습해보았다.

여기서는 이름을 바꿀 거니까 이름들로 리스트를 만들어주었다. 이제 반복문을 돌려서 엑셀에 해당 이름이 있으면 마스킹 처리해주는 코드를 짜볼 것이다.

※gsub
문자열 대체 함수이다. 형식은 아래와 같다.
gsub("바꾸고자하는 대상의 text 또는 패턴","대체할 text",text객체)
즉, 여기서는 emr이라는 데이터프레임에서 name 패턴을 "***"이라는 문자열로 바꾸라는 뜻이다.
나중에 코드를 짜볼 때 쓰기 좋을 메소드같다.
이렇게 코드를 입력하고 데이터 프레임을 확인해보면

Johm, Peter, Alice가 ***로 마스킹 처리된 것을 알 수 있다.
이어서 전화번호를 마스킹 처리 해보겠다.
전화번호 마스킹 처리
이름은 패턴이 없기에 반복문을 돌리면서 하나씩 바꾸지만 전화번호는 패턴이 있다. 보통의 전화번호는 세자리,네자리,네자리 순으로 되어있고 중간에 "-"로 되어있다.
코드는 위와 같고 gsub() 함수도 똑같이 활용하다.

중간에 .은 사이에 어떤 것이 들어가던 상관이 없다는 뜻이다. 이 코드를 실행해보면

010-9999-9999로 다 바뀌었지만 01077776666은 그대로이다. 그 이유는 연속된 열한자리로 인식되었기 때문이다.
이렇게 전화번호 형식이 다르게 기록될 때가 있다.
만약 사이에 "-"만 있는 흔한 형태라면 위의 코드를 써도 되나 다른 형태라면 다른 코드를 사용하는 것이 좋다.
이 영상에는 or로 묶어 여러 형태 중 하나만 해당하면 바뀌는 것으로 해두었다.


하나에만 해당하면 다 *로 바뀌기 때문에 위와 같이 변환된 것을 볼 수 있다.
'2024 여름 SWLUG > [여름] 개인정보보호 프로젝트' 카테고리의 다른 글
[파이썬]데이터 비식별화 코드 최종 + 웹 개발 기초 및 기획 (0) | 2024.08.18 |
---|---|
[파이썬] 데이터 비식별화 처리 (0) | 2024.08.08 |
R Studio CSV 파일 불러오기 (0) | 2024.07.28 |
R프로그래밍 기초 2 - R프로그래밍 구조 (0) | 2024.07.21 |
R프로그래밍 기초 1 - R 소개와 데이터 구조 (0) | 2024.07.21 |