해당 포스트는 데이터 프레임(Data Frame)의 특정 컬럼을 기준으로 그룹 합계(Group Sum)을 계산하는 방법을 소개합니다. INTRO R에서 그룹합(Group Sum)을 계산하는 경우는 집단별 합계, 성별 인원 합계, 연령대 소득 합계 등 다양합니다. 아래에서는 R에서 제공되는 다양한 그룹합(Group Sum) 함수들 중, 추가 설치 없이 사용 가능한 aggreate() 함수에 대해 설명하고 예시 데이터와 함께 간단한 풀이를 진행합니다. aggregate? aggregate()는 데이터를 하위 집합으로 분할하여, 각각에 대한 요약 통계를 계산하고 편리한 형식으로 결과를 반환해주는 함수입니다. 함수 사용법 aggregate(x, FUN, …, simplify = TRUE, drop = TRUE)..
해당 포스트에서는 R에서 숫자 데이터 범위에 따라 그룹을 지정하는 방법에 대해 소개합니다. INTRO ifelse() 함수는 R 프로그래밍 언어에서 자주 사용되는 함수 중 하나로, 간단한 조건문을 작성할 때 사용되며, if-else 문의 간단한 버전이라고 생각하시면 됩니다. 자주 사용되는 함수이기도 하지만, 쉽게 사용할 수 있어 간단한 예시 몇 개만 익히신다면 금방 마스터하실 수 있습니다. 아래에서는 간단한 예시와 함께 코드 사용 방법에 대해 설명합니다. 문제 풀어보기 먼저, 0부터 12까지의 정수를 갖는 숫자 벡터인 mydata를 생성하고, 이를 출력해 보겠습니다. # 숫자 벡터 생성 mydata = 10, "a", NA)))) [1] "d" "d" "d" "c" "c" "c" "b" "b" "b" "..
해당 포스트는 MASS패키지의 Cars93 데이터셋을 Origin 변수값에 따라 두 그룹으로 분할하는 방법을 소개합니다. INTRO 데이터 분석을 하다보면 'train/test', '합격/불합격', '남자/여자' 등 데이터셋을 분할하는 경우가 많이 발생합니다. 데이터셋을 분할하기 위해서는 기준이 필요한데, 특정 컬럼 또는 데이터에 기준이 있는 경우라면 쉽게 해결이 가능합니다. 아래에서는 MASS 패키지에서 제공되는 Cars93 데이터셋을 이용하여 Origin 컬럼값에 따라 데이터를 분할하는 방법을 설명합니다. 문제 풀이 MASS 패키지에서 제공되는 Cars93 데이터셋을 이용하여 Origin 컬럼값에 따라 데이터를 분할하는 R코드는 다음과 같습니다. 아래 코드는..
해당 포스트에서는 R에서 데이터 프레임(Data Frame)에 있는 모든 숫자 데이터를 한 번에 '홀수'와 '짝수'로 변환하는 방법에 대해 설명합니다. INTRO R에서 사용되는 기본 자료형(Basic Data Types)은 총 5가지가 있습니다. 그 중에서도 수치형(numeric or integer)과 문자형(character)은 상대적으로 많이 사용되기도 하지만, 데이터 분석 과정에서 변환을 통해 데이터 특성을 다르게 고려해야 하는 경우가 종종 발생합니다. 아래에서는 네이버 지식을 통해 받은 질문 중, 데이터 프레임(Data Frame)에 저장된 모든 숫자를 한 번에 '홀수', '짝수'라는 문자로 변경하는 방법에 대해 설명합니다. 질문 내용 및..
해당 포스트는 R에서 사용자에게 점수를 입력받으면 학점(등급)을 계산하여 출력해주는 방법에 대해 소개합니다. INTRO 사용자에게 점수를 입력받고, 구간에 따라 학점(등급)을 출력해 주는 함수를 생성해 보겠습니다. 간단하지만 기초 단계에 배우는 사용자 입력, 조건문, 반복문까지 필요한 문제이기에 아래 설명을 참고하시어 기초를 이해하시고 활용해 보시면 좋을 것 같습니다. 질문 풀이 1. 문제 파악 먼저, 문제에서 제시된 조건들을 정리하면 아래와 같습니다. 0부터 100사이의 정수 값 입력받기 입력받은 정수를 학점으로 변환 for반복문을 이용하여 5회 반복 readline() 을 사용하여 사용자 입력 받기 입력받은 문자열을 숫자로 변경할 때 as.numeric() 함수 사용 4,5번 조건은 1번 코드를 작성..
해당 포스트는 R에서 행렬(matrix)을 리스트(list)에 저장한 후 특정 연산을 수행하는 방법에 대해 소개합니다. INTRO 행렬(matrix)은 R에서 많이 사용되는 데이터 프레임(Data frame)과 유사하여 데이터 조작이 낯설지 않으실 겁니다. 하지만, 리스트(list)에 저장된 행렬(matrix)을 조작하려는 경우에는 다른 코드 사용법을 알아야 하며 아래에서는 그 방법에 대해 설명합니다. 질문 풀이 1. 데이터 생성 문제에서 주어진 연산이 가능하도록 데이터를 생성하겠습니다. 먼저, mat라는 행렬(matrix) 데이터를 생성한 후, 리스트(list) 타입으로 변환하여 info라는 변수에 저장합니다. # info라는 list에 mat 이라는 matrix 생성 # 원소는 c() 함수에 할당된 ..
해당 포스트는 R에서 난수 추출 방식을 이용하여 로또 게임 함수를 만드는 방법에 대해 소개합니다. INTRO 처음 프로그래밍을 공부하던 시기에는 다양한 이론 공부들보다 실습하는 시간이 좋았고, 그 중에서도 어렵지 않은 게임을 구현하는 실습을 좋아했습니다. 공부한 내용을 기반하여 결과를 출력하는 완성된 코드를 작성했다는 성취감도 있었지만, 아직은 부족하지만 (많이) 보완 된다면 실제 생활에 활용 가능한 결과물 될 수 있다는 것에 성취감을 더 크게 느꼈던 것 같습니다. 로또 게임은 목적에 따라 좀 더 현실감있게 만들 수 있겠지만, 아래에서는 입문자 분들이 구현할 수 있도록 난수를 이용해 로또 번호 6개를 추출하는 함수를 만들어 보겠습니다. 질문 R프로그래밍 질문 2) 로또 함수 만들기 풀이 로또 함수는 목표..
해당 포스트는 1부터 100까지 숫자들 중 3의 배수의 합과 평균을 계산하는 방법을 소개합니다. INTRO R프로그래밍 기초 과정에서는 사칙연산(더하기, 뺄셈, 곱셈, 나눗셈)을 활용하여 프로그래밍 하는 기본 방법에 대해 많이 연습하게 됩니다. 해당 문제는 '3의 배수'를 찾아내는 방법만 이해하면 쉽게 풀 수 있는 문제로 아래에서 설명하도록 하겠습니다. 질문 R프로그래밍 질문 1) 1부터 100까지 3의 배수의 합과 평균내기 풀이 프로그래밍 문제는 다양한 방법으로 풀이 가능합니다. 예를 들어, 해당 문제도 반복문을 이용하여 풀 수도 있고, 간단한 벡터 연산으로 풀이도 가능합니다. 물론 이 외의 방법들도 존재합니다. 아래에서는 반복문이 아닌 벡터 연산으로 풀이하는 방법에 대해 설명할 예정이며..
해당 포스트는 R에서 벡터에 들어있는 양수의 개수를 카운트하는 방법에 대해 소개합니다. INTRO R에서 벡터(vector)는 가장 많이 다루기에 가장 중요한 자료 구조(Data Structure)입니다. 벡터(vector)를 다루는 다양한 연습을 한다면 앞으로의 R프로그래밍 역량 개발에 큰 도움이 될 것이라 생각하빈다. 아래에서는 실수값만을 원소로 가지는 벡터에서 양수의 개수를 찾아주는 사용자 함수 생성 방법을 설명합니다. 질문 풀이 1. 벡터 생성 먼저 실수값만으로 이루어진 벡터 x를 생성하겠습니다. x 0은 x의 값들 중 0보다 큰 값들을 TRUE로 리턴해 줍니다. x > 0 [1] TRUE FALSE TRUE FALSE TRUE FALSE TRUE 조건식을 만족하는 값의 개수 세기 위 결과에서 조..
해당 포스트는 R에서 최솟값을 찾아주는 사용자 함수를 작성하는 방법을 소개합니다. INTRO R은 오픈소스 기반의 언어로, 공개된 커뮤니티에서 다양한 패키지들이 생성 및 공유되고 있습니다. 지금 이순간에도 새로운 패키지들이 생성되고 있으며, 개인적으로 이러한 패키지들을 잘 찾고 활용하는 것도 하나의 필수 스킬이라고 생각합니다. 이번 포스트에서는 최솟값을 찾아주는 min() 함수를 사용하지 않고 벡터 내 최솟값을 찾아주는 사용자 함수를 생성하는 방법을 설명합니다. 사용자 함수 만들기 R 내장 함수인 min() 함수를 사용하지 않고 최솟값을 찾는 방법 중 하나는 정렬(sort)을 이용하는 것입니다. 입력받은 벡터를 오름차순(incresing sort)으로 정렬하고 첫번째 값을 추출하는 방법으로, R에서는 내..