본문 바로가기

728x90
반응형

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

(59)
[실습문제] 2023. 12. 5.(화) (2문제) (로또 번호 생성기, 이전값 가져오기 팁) 실습문제 1. 로또 번호 생성기 만들기 1~45번까지 6개를 추출하여라 단, 한 번에 하나의 숫자만 추출이 가능하며, 숫자는 중복될 수 없다. 작은 숫자 순서대로 출력하여라. 선생님 풀이와 비슷하게 풀었으나 나는 while문에서 1~1000까지의 횟수 제한을 두었고 선생님은 length가 로또 총 추출개수가 될 때까지 반복하라고 풀이하셨으므로 선생님 풀이 과정을 첨부하겠다. 실습문제 2. delivery.csv 파일을 읽고 1) 일자별 총 통화건수를 구하여라. 2) 일자별 배달콜수에 대한 전일 대비 증감률을 구하여라(단, 첫 날은 0%) 위 문제를 풀기 위한 방법 중 이전값을 가져오는 여러 방식이 있다. 첫 번째는 위 풀이에 나온 사용자 정의 함수를 생성하여 가져오는 방법 두 번째는 꼼수이지만 아래와 같..
[복습] R(programming language) 자료구조(행렬과 배열) (4) + 하루끝(20231205) 이전 자료구조 중 벡터와 데이터 프레임은 이전 게시물에 올려두었다. 벡터 https://metime.tistory.com/103 [복습] R(programming language) 자료구조(벡터) (2) https://metime.tistory.com/96 [복습] R(programming language) 의 자료구조(벡터, 데이터 프레임) + 복습후기(20231121) R의 자료구조에는, 0. 스칼라 1. 벡터 2. 리스트 3. 행렬 4.배열 5. 데이터 프레임 이 있다. 오늘 metime.tistory.com 데이터 프레임 https://metime.tistory.com/104 [복습] R(programming language) 자료구조(데이터 프레임) (3) 데이터 프레임을 살펴보기 전에 다른 자..
[복습] R(programming language) 정규식 표현식과 정규식을 사용한 문자열 추출(str_extract, str_match) 정규식 표현식은 sql에서도 공부하였듯이 문자열을 일반화시키는 패턴으로, stringr 패키지의 문자열 함수 대부분이 정규식 표현 전달이 가능하다. 예) 패턴 확인(숫자로 끝나는 ID 추출) 예) 문자열의 일부 삭제/치환 Line 2처럼 숫자를 콤마로 치환하거나, email에서 id 부분을 삭제할 수 있다. 문자열 추출은 서브패턴을 지정하고 추출하겠다는 의미로, 정규식을 사용한 문자열 추출은 - 패턴에 매칭되는 값만 추출하는 str_extract과 - 패턴에 매칭되는 값들 중 일부 영역(서브패턴)을 추출하는 str_match 가 있다. 아래 벡터에서 각각 역이름, 호선 정보를 추출하여 보자. 또한 다음의 문자열에서 email_id 추출하여보자(추출함수 사용) 이번엔 str_match를 사용하여 여러 개의..
[실습문제] 2023. 12. 4.(월) (2문제) 실습문제 1. movie_ex1.csv 파일을 읽고 1) 요일별로 이용비율이 가장 높은 연령대를 출력하고 요일은 월화수목금토일 순서로 정렬하여라. 오랜만에 선생님 답안과 내 답안이 일치하여 내 코드와 선생님 코드 둘 다 올려보려고 한다. 요일 컬럼 만드는 부분 등이 약간씩 달라서 두 가지 풀이 법을 올려보고 싶다. 우선 내 풀이이다. 다음은 선생님 해설이다. Line 9를 주목해보면, 요일 컬럼이 ordered factor(wday특징)이므로 level 이 갖는 순서대로 정렬된다. 이 문제에서는 요일별로 정렬하라고 최종적으로 나와있는데 wday를 쓰는 순간 일월화수금토일 순서대로 출력이 된다. 그러면 문제를 풀이하는 의미가 거의 사라지므로 선생님은 다시 요일을 금목수월일토로 순서를 흩트리기 위하여 mov..
[복습] R(programming language)에서의 순위(rank, dense_rank) + 하루끝(20231204) 1. rank 바로 rank 의 문법을 확인하여보자. rank(x, # 대상(벡터, 하나만 전달 가능, 역순일 경우 -x) na.last = T, # NA 마지막 배치 여부 ties.method = 'average' , # 순위의 평균값으로 동순위 부여 (1.5, 1.5, 3.0, 4.0, 5.0) 'first', # 동순위로 처리하지 않고 각각 다른 순위 부여 (1,2,3,4,5) 'last', # 동순위로 처리하지 않고 각각 다른 순위 부여 (2,1,3,4,5) 'random', # 변동(동순위로 처리하지 않음. 각각 서로 다른 순위를 랜덤하게 부여) 'min', # 동순위로 처리하지 않고 낮은값(높은순위)로 동순위 처리(1,1,3,4,5) 'max') # 동순위로 처리하지 않고 큰값(낮은순위)로 동..
[복습] R(programming language)에서의 정렬(order, sort, orderBy, arrange) 정렬의 개념 중 1차 정렬, 2차 정렬의 개념을 명확히 알아야 한다. 특히 2차 정렬은, 1차 정렬 결과에서 같은 값을 가질 경우 그 데이터를 추가 정렬을 수행하는 것이다. 예를 들면, 위와 같이 성별 정렬 후 이름을 정렬하게 되면 우측 결과처럼 출력이 된다. 성별 이름별 정렬을 하라고 한다면 언어적 느낌상 group by 후 sort를 하라는 것 같지만 그렇게 착각하여서는 안된다. 성별을 1차로 정렬하고 이름을 2차로 정렬하라는 의미이다. 정렬 함수는 여러 개가 있는데 쓰임의 빈도에 맞게 ★를 달아보자. 1.order ★ ★ ★ - 직접 정렬된 결과로 리턴해주지 못한다 - 정렬된 순서대로 위치 값을 리턴한다 → 위치를 색인으로 전달하여 원하는 순서를 보장한다. 문법은 다음과 같다. order(....,..
[복습] R(programming language) 그룹 연산 정리(aggregate, ddply) https://metime.tistory.com/142 [복습] R(programming language) Group by 연산 함수(tapply, aggregate, ddply) + 하루끝(20231201) SQL에서 group by 연산처럼 수행을 도와주는 형태가 R에는 함수로 존재한다. 우선 group by 연산은 분리(그룹별) - 연산(적용) - 결합 의 매커니즘으로 구성되어 있다. 세 가지 정도 소개하려고 한다. 1. metime.tistory.com 여기서 배운 그룹 연산을 정리해보도록 하겠다. tappy는 데이터 프레임으로 output이 출력되지 않기 때문에 잘 사용하지 않으므로 넘어가겠다. 1. aggregate 1번 문법 - 연산 대상 컬럼이 많을 경우 유리하다. - 외부 객체를 사용할 ..
[복습] R(programming language) 그룹 연산 기능인 aggregate 함수가 갖는 장점(외부 객체로의 그룹 연산) aggregate 함수는 두 가지 문법이 있다. 자세한 내용은 아래 링크를 우선 참고하자. https://metime.tistory.com/142 [복습] R(programming language) Group by 연산 함수(tapply, aggregate, ddply) + 하루끝(20231201) SQL에서 group by 연산처럼 수행을 도와주는 형태가 R에는 함수로 존재한다. 우선 group by 연산은 분리(그룹별) - 연산(적용) - 결합 의 매커니즘으로 구성되어 있다. 세 가지 정도 소개하려고 한다. 1. metime.tistory.com emp.csv 자료로 예시를 들어보겠다. emp의 직원을 두 그룹으로 나누어 급여 평균을 계산하여보자. 단, 그룹 모집은 선착순이다(1~7번까지 1번 그룹,..
[실습문제] 2023. 12. 1.(금) (4문제) 실습문제 1. 2000-2013년_연령별실업율_40-49세.csv 파일을 읽고 1) 연도별 실업률 평균을 구하여라 이 문제는 열별 평균을 구하는 문제이다. 2) 월별 실업률 평균을 구하여라 이 문제는 행별 평균을 구하는 문제이다. 3) 모든 데이터를 소수점 둘 째 자리까지 표현하여라 이 문제에서는 sprintf를 사용하게 된다. 우선 값 하나를 대입하면 sprintf('%.2f', df1[1,1]) 이런 형식으로 작성하게 된다. 그렇게 되면 바로 apply에 대입을 할 수가 없다. 왜냐하면, 일단 apply에 대입하게 되면 아래와 같이 작성하게 되는데, apply(df1, c(1,2), sprintf, '%.2f') 이 함수를 해석하면 sprintf의 첫 인수가 df1이 된다는 의미이다. 하지만 문법을 ..
[실습문제] 2023. 11. 30.(목) (2문제) 실습문제 1. emplyment.csv 파일을 읽고 1) 연도별 총 근로일수의 평균을 구하여라 2) 고용형태별 월급여액 평균을 구하여라(전체근로자와 전체근로자(특수형태포함)이 다른 그룹이 되도록) 실습문제 2. student, exam_01 데이터를 사용하여 각 학년별 최고 성적자의 이름, 학년, 성적을 출력하여라.

728x90
반응형