본문 바로가기

배우기/복습노트[R과 분석]

[실습문제] 2023. 11. 23.(목) (3문제)

728x90
반응형

실습문제 1. 2000-2023년_연령별실업률_40-49세.csv 파일을 읽고

1) 아래와 같이 표현하여라

월   2000   2001   2002

1월

2월

...

 

나는 str_sub를 이용하여 연도만 추출했는데 선생님은 remove를 사용하여 X와 년을 삭제하셨다.

먼저 내 풀이이다.

 

 

아래는 선생님 해설이다.

 

2000년부터 2013년을 선택할 때 나는 범위를 [2:2013-2000+2]로 잡았는데 선생님처럼 [-1]을 해서 하나만 제외하는 것을 익히는 게 더 편리할 것 같다. 저 방법으로 익혀야겠다.

 

그리고 '월'을 붙일 때  str_lpad(df1, 2, 'right', '월') 을 시도할 수도 있을텐데 lpad는 특수기호나 알파벳 등 1바이트만 허용하고 있다. 그래서 한글이 들어가면 에러가 난다(한글은 2바이트 이상). 즉 삽입문자는 width가 1인 글자만 전달이 가능한 점도 참고해두자.

 

 

2) 2003년 상반기의 실업률 평균을 구하여라

 

먼저 내 풀이이다.

나는 df1 결과가 벡터로 나오기 때문에 벡터의 범위를 지정하여(상반기, [1:6]) 풀었다.

 

선생님은 다른 방식으로 풀이를 해주셨다. 

여기서 월 비교를 할 때 '월'을 제거한 이유는,  월 비교시 10월<7월이 되기 때문이다. 컴퓨터는 10의 1과 7을 비교한다. 그래서 월을 제거하고 숫자비교를 하셨다.

이 데이터는 1월부터 12월까지 차례로 있기 때문에 내 방법이 가능하고, 만일 월의 순서가 뒤죽박죽이라면 선생님의 방법대로 하는 게 좋을 것 같긴 하다. 

 

 

3) 2009년 실업률 중 2.5 미만인 경우 기존 실업율의 10% 증가값으로 수정하여라

 

 

여기서 주의할 점은 값을 수정할 때에는 반드시 수정 대상과 수정할 값의 크기와 자료구조가 같아야 한다.

따라서 아래와 같이 쓰면 에러가 난다.

df1[df1[,'2009'] < 2.5, '2009']  <- df1[,'2009']*1.1 

 

728x90

 

 

 

3. student.csv  파일을 읽고 전화번호에서 국번을 마스킹 처리하여라(국번의 길이에 맞게 마스킹 값(X) 반복)

 

선생님 잠시 자리 비우셔서 잠시 비워둠

 

 

 

 

 

 

 

 

 

 

728x90
반응형