해당 포스트는 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 필수 패키지 중..
해당 포스트는 R에서 평균 계산(mean)시 사용할 수 있는 trim 옵션에 대해 소개합니다. INTRO R에서는 평균을 구해주는 내장함수 mean()이 있습니다. 기본 함수로도 부족함없이 사용할 수 있으나 mean() 함수에서 제공되는 na.rm과 trim 같은 효율성을 높여주는 옵션을 알아두시는 것이 좋습니다. 아래에서는 간단한 mean() 함수 설명과 옵션 사용법에 대해 예시와 함께 설명합니다. mean() 함수 1. 기본 사용법 mean() 함수는 R에서 평균 계산을 위해 제공되는 기본(base) 함수이며, 사용법은 아래와 같습니다. mean(x, trim = 0, na.rm = FALSE, ...) x : 평균 계산이 필요한 입력 데이터 trim : 양극단(상한/하한) 데이터에서 일정 비율 제거..
해당 포스트는 R의 랜덤 추출 함수인 sample 및 prob 옵션에 대해 설명합니다. INTRO R에서 랜덤 추출을 담당하는 기본 함수에는 sample()이 있습니다. 난수 생성, 복원/비복원 추출 등의 실험에서 사용되는 함수로 prob= 옵션으로 추출 대상 각각에 추출 확률을 지정할 수 있습니다. 아래에서는 네이버 지식인을 통해 받은 질문에 대한 답변과 sample() 함수의 사용법을 함께 설명합니다. 문제 풀이 1. sample() 함수 설명 sample() 함수는 데이터를 랜덤 추출할 때 사용하는 함수이며, 기본적인 사용법은 아래와 같습니다. sample(x, size, replace = FALSE, prob = NULL) x : 랜덤 추출 대상이 되는 데이터 size : 랜덤 추출할 개수 rep..
해당 포스트에서는 'R에서 수학 연산(세제곱근, 루트, 로그, 삼각함수) 방법'에 대해 소개합니다. INTRO 네이버 지식인에서 R 코드로 수학 연산을 어떻게 해야 하는지 질문을 받았습니다. 손으로 풀이할 때 보다 훨씬 간단한 방법으로 수학적 연산이 가능하지만 초심자분들에게는 모르는 함수를 찾아내는 것 조차 어려울 수 있어 해당 포스트를 공유하게 되었습니다. 수학 연산 예시 위 사진에서 보여진 수학 문제들은 아래 코드와 같이 풀이가 가능합니다. 코드는 간단하지만 각 함수들이 어떤 역할을 하는지, 중첩 사용을 위해서는 어떻게 코드를 작성하면 되는지에 대해 이해하고 활용해 보시는 것이 좋습니다. # 1 5^(1/3) # 2 log(5)^(1/2) # 3 cos(2/3*pi) # 4 log10(..
해당 포스트에서는 현재 접속이 불가한 R 공식 홈페이지를 우회하여 R 설치 파일을 다운받는 방법에 대해 소개합니다. 현재 R공식 홈페이지(http://www.r-project.org/)접속이 안되고 있습니다. 일시적인 현상일 수도 있겠으나 몇몇 분들이 해결 방법을 문의하시어 우회방법을 포스팅하게 되었습니다. 아래 사이트(https://cloud.r-project.org/)는 r-project에서 운영하는 cloud 버전의 사이트입니다. 해당 사이트에 접속하시어 시스템(Windows or Linux)에 맞는 R 설치 파일을 받으시면 됩니다. The Comprehensive R Archive Network cloud.r-project.org R/Rstudio 설치 및 세팅 방법은 아래 링크에서 확인 가능합니..
해당 포스트에서는 R에서 조건문과 반복문을 이용하여 약수를 출력하는 방법을 소개합니다. 1. INTRO 이번 포스트에서는 조건문과 반복문을 이용하여 특정 수의 약수를 출력하는 방법을 설명합니다. 비교적 간단한 프로그래밍 문제이기에 설명이 길진 않으나 프로그래밍 입문자분이라면 동작 구조를 이해하고 단계별 출력을 직접 확인해 보시는 것이 좋습니다. 2. R 코드 아래는 약수를 구하는 사용자 함수 divisor의 코드입니다. 사용자가 약수를 구하고자 하는 수 n을 입력하면, n의 약수를 출력해 주는 구조입니다. 코드를 좀 더 자세히 살펴보면, divisor()함수는 약수를 구하려는 수 n을 입력받고 반복문 for()함수를 이용해 i를 1부터 n까지 증가시키면서 n을 i로 나누었을 때 나머지가 0이 되는 i들을..