해당 포스트는 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에서 날짜 데이터를 이용하여 시각화하는 과정에서 데이터 형식이 맞지 않아 발생하는 에러 해결 방법에 대해 소개합니다.INTROR에는 다양한 데이터 형식(Data Type)이 존재합니다. 특히, 날짜 데이터의 경우, 임의로 텍스트 형식으로 처리하는 경우가 종종 있지만, 모든 데이터는 본래에 형식에 맞게 데이터 형식(Data Type)을 맞춰준 뒤 처리하는 것이 좋습니다.아래에서는 날짜 데이터를 다루는 과정에서 데이터 타입을 맞추지 않고 시각화하려 했을 때 발생하는 에러를 해결하는 과정을 설명합니다. 문제 해결하기1. 데이터 생성먼저, 상황 재현을 위해 날짜 데이터(date)와 온도(temp)가 들어있는 데이터 프레임(Data frame) mydata를 생성해 보겠습니다.mydata ..
해당 포스트는 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에서는 내..
해당 포스트에서는 'R에서 기존 변수로 조건에 맞는 새로운 변수를 생성 하는 방법' 에 대해 설명합니다. INTRO R에서 조건절을 사용한다면 가장 많이 사용되는 함수는 if(), ifelse() 입니다. 두 함수는 사용자가 원하는 조건에 따라 기존 변수를 변환 또는 생성해 주는데 조건이 3개 이상이 된다면 함수 사용에 불편함(e.g. 함수의 반복 사용으로 인식률 저하)이 발생합니다. 이런 경우를 위해 dplyr 패키지에서는 case_when() 함수를 제공하고 있고, 아래에서는 한 개 컬럼을 기준으로 적용할 때와 두 개 이상 컬럼을 기준으로 적용할 때를 나누어 예시 코드와 함께 사용 방법을 설명합니다. case_when 데이터에 기존에 있던 변수를 이용해 새로운 변수를 생성할 때에는 기본..
해당 포스트에서는 데이터 처리 전문 패키지인 dplyr의 mutate 함수 활용에 대해 소개합니다. INTRO R에서 데이터 처리를 한다면 많은 분들이 dplyr 패키지를 먼저 설치하게 됩니다. 유용한 함수들이 많이 포함되어 있기도 하지만 tidyverse 생태계에 포함되어 있어 타 패키지들과의 호환성이 뛰어나다는 장점이 있습니다. 아래에서는 dplyr 패키지에서 제공되는 함수들 중 mutate() 계열의 함수들을 예제 코드와 함께 소개합니다. mutate()? dplyr 패키지에서 제공되는 mutate() 함수는 데이터 프레임(Data Frame)에 변수를 추가할 때 사용됩니다. mutate 계열 함수 mutate() : 기존 변수를 유지하면서 새로운 변수 추가 transmute() : 기존 변수는 제..
해당 포스트는 'R에서 버블 정렬(Bubble Sort)을 구현하는 방법'을 소개합니다.INTRO알고리즘(algorithms)을 배우기 시작하면 가장 먼저 접하는 것이 정렬 알고리즘(Sorting Algorithms) 종류입니다. 그 중에서도 버블 정렬(Bubble Sort)는 기초 단계로 구현이 간단하지만 정렬되지 않은 자료에 대해서는 성능이 좋지 않은 편에 속합니다.알고리즘 학습 입문자 분들에게 성능은 아직 고려할 사항이 아니니 이번 포스트에서는 알고리즘의 방식을 이해하고 실제 구현을 통해 이해를 높여보셨으면 좋겠습니다. 버블 정렬(Bubble Sort)?버블 정렬(Bubble Sort) 알고리즘은 입력 벡터의 이웃한 항목들이 원하는 순서가 아닐 때 그것들을 서로 교환함으로써 동작하는 정렬 방식으로,..
해당 포스트에서는 R 데이터 필터링 방법 중 하나인 '포함되지 않는(not in)' 데이터 추출 방법을 설명합니다. INTRO R에서 원하는 데이터를 추출하려면 특정 컬럼을 선택하거나 데이터 내 값의 조건을 적용하여 추출하면 됩니다. 해당 포스트에서는 후자의 경우인, 조건을 이용해 특정 값에 해당하는 데이터 필터링 방법에 대해 설명하며, '조건에 해당하지 않는' 데이터 추출 방법을 설명합니다. 원문 출처 : [R-bloggers] How to Use “not in” operator in Filter filter 함수 설명 아래에서는 dplyr 패키지에서 제공하는 filter() 함수를 이용하여 설명합니다. dplyr 패키지는 다양한 데이터 처리를 지원해주는 R 필수 패키지 중..