강좌 목록으로 돌아가기
AI014 Professional

R 프로그래밍 입문

이 과정은 R 언어 환경에 대한 포괄적인 소개로, 기본 숫자 벡터 연산, 객체 속성, 배열 및 행렬 처리, 리스트와 데이터 프레임 관리, 통계 모델링 및 고품질 그래픽 생성까지 핵심 주제를 다룹니다. 통계 분석과 데이터 과학의 입문서로 매우 적합합니다.

4.9
30.0h
716 학생들
2 좋아요
인공지능
수강 시작하기

강좌 개요

📚 콘텐츠 개요

이 과정은 R 언어 환경에 대한 포괄적인 소개로, 기본 수치 벡터 연산, 객체 속성, 배열/행렬 처리부터 리스트/데이터 프레임 관리, 통계 모델링, 고품질 그래픽 생성까지 핵심 주제를 다룹니다. 통계 분석 및 데이터 과학의 입문서로 적합합니다.

R 언어의 핵심을 익히고 통계 계산과 데이터 시각화의 문을 열어보세요.

저자: R 개발 커널 팀

감사의 말: 본 매뉴얼은 R 개발 커널 팀에서 유지 관리하고 있습니다. 중국어판은 마세 시게루(Shigeru MASE)의 일본어 번역을 기초로 하였으며, 리즈핑(Др. ZP Li), 리루이(Др. Rui Li) 등 중국어 번역팀의 기여에 감사를 드립니다.

🎯 학습 목표

  1. R 세션을 초기화하고, 도움말 시스템을 탐색하며 기본 구문 규칙(대소문자 구분, 할당, 주석)을 적용한다.
  2. 논리 벡터, 문자 벡터를 구분하고 생성하며, 결측값(NANaN)을 다룬다.
  3. 데이터의 특정 부분집합을 선택, 제외 또는 수정하기 위해 네 가지 다른 인덱싱 방법을 사용한다.
  4. R 객체의 내재적 속성(모드와 길이)을 식별하고 수정한다.
  5. class()attr() 함수를 활용하여 객체 메타데이터와 데이터 구조를 관리한다.
  6. 범주형 데이터를 표현하기 위해 요인과 순서형 요인을 생성하고 조작한다.
  7. 차원 벡터와 array() 함수를 사용해 배열과 행렬을 정의하고 구성한다.
  8. 고급 인덱싱 기법을 적용하며, 인덱스 행렬을 사용해 특정 요소를 추출하거나 수정한다.
  9. 외적, 일반화된 전치, 행렬 역행렬 계산 등을 포함한 선형 대수 연산을 수행한다.
  10. 리스트를 생성하고 조작한다: 이름이 붙은 리스트와 이름이 없는 리스트를 만들며, 특별한 R 구문으로 결합한다.

🔹 수업 1: R 소개 및 벡터 기초

개요: 이 수업에서는 R의 기초 환경을 소개하며, 기본 구문, 명령 실행, 도움말 시스템을 다룹니다. 또한 논리, 문자, 결측값 등의 전문화된 벡터 유형을 탐구하고, 인덱스 벡터를 통해 데이터 부분집합을 선택하거나 수정하는 자세한 방법을 제공합니다.

학습 결과:

  • R 세션을 초기화하고, 도움말 시스템을 탐색하며 기본 구문 규칙(대소문자 구분, 할당, 주석)을 적용한다.
  • 논리 벡터, 문자 벡터를 구분하고 생성하며, 결측값(NANaN)을 다룬다.
  • 데이터의 특정 부분집합을 선택, 제외 또는 수정하기 위해 네 가지 다른 인덱싱 방법을 사용한다.

🔹 수업 2: 객체 속성 및 요인 처리

개요: 이 수업은 R 객체의 기본 속성, 특히 모드와 길이 같은 내재적 속성에 대해 다루며, 이러한 속성을 조회하거나 수정하는 방법을 설명합니다. 또한 범주형 변수를 처리하기 위한 특수한 데이터 구조인 "요인"(factors)을 탐구하고, tapply() 함수를 사용해 요인 레벨 간 그룹 통계 분석을 수행하는 방법을 보여줍니다.

학습 결과:

  • R 객체의 내재적 속성(모드와 길이)을 식별하고 수정한다.
  • class()attr() 함수를 사용하여 객체 메타데이터와 데이터 구조를 관리한다.
  • 범주형 데이터를 표현하기 위해 요인과 순서형 요인을 생성하고 조작한다.

🔹 수업 3: 배열, 행렬 및 선형 대수

개요: 이 수업은 배열과 행렬을 통해 다차원 데이터를 처리할 수 있는 R의 강력한 기능을 탐구합니다. 차원 벡터를 사용해 데이터 구조를 정의하고, 복잡한 인덱싱을 수행하며, 통계 계산과 데이터 분석에 필수적인 선형 대수 연산—행렬 곱셈, 역행렬, 분해 등—을 수행하는 방법을 배웁니다.

학습 결과:

  • 차원 벡터와 array() 함수를 사용해 배열과 행렬을 정의하고 구성한다.
  • 인덱스 행렬을 사용해 특정 요소를 추출하거나 수정하는 고급 인덱싱 기법을 적용한다.
  • 외적, 일반화된 전치, 행렬 역행렬 계산 등을 포함한 선형 대수 연산을 수행한다.

🔹 수업 4: 데이터 관리: 리스트, 데이터 프레임 및 입출력

개요: 이 수업은 R에서 복잡한 데이터 구조와 외부 데이터를 다루는 기본 사항을 다룹니다. 리스트—다양한 유형의 구성 요소를 담을 수 있는 유연한 컨테이너—와 입출력(I/O)의 실용적 측면에 초점을 맞춥니다. 외부 파일에서 데이터를 리스트 구조나 행렬으로 읽어들이는 방법, 패키지에서 내장된 데이터셋에 접근하는 방법, 그리고 데이터를 수정하기 위한 상호작용 편집 도구 사용 방법을 설명합니다.

학습 결과:

  • 리스트를 생성하고 조작한다: 이름이 붙은 리스트와 이름이 없는 리스트를 만들며, 특정 R 구문으로 결합한다.
  • 구성 요소 접근: [[ ]], [ ], $ 등 다양한 인덱싱 방법을 구분하고 적용하여 리스트 데이터를 가져온다.
  • 외부 데이터 입력: scan() 함수를 사용해 외부 파일로부터 데이터를 구조화된 리스트나 행렬으로 읽어들인다.

🔹 수업 5: 확률 분포 및 통계 검정

개요: 이 수업은 확률 분포를 다루고, R에서 통계적 추론을 수행하는 방법에 대한 종합적인 가이드를 제공합니다. 학생들은 확률 분포 함수에 대한 표준화된 접두사 시스템(d, p, q, r)을 활용하고, 기술 통계량을 생성하며, 경험적 누적 분포 함수(ecdf)와 Q-Q 플롯을 사용해 데이터를 시각적으로 평가하는 방법을 배웁니다.

학습 결과:

  • 표준 분포(정규분포, T분포, F분포 등)에 대해 R의 분포 명명 체계(접두사 d, p, q, r)를 익히고 적용한다.
  • 경험적 누적 분포 함수(ecdf)와 분위수-분위수(Q-Q) 플롯과 같은 시각적 진단 도구를 구성하고 해석하여 분포 적합도를 평가한다.
  • 파라미터 기반 검정과 비모수 검정을 실행하고 구분한다. 예: 웰치 t검정, 샤피로-윌크 정규성 검정, 콜모고로프-스미르노프 검정.

🔹 수업 6: 프로그램 제어 및 반복 로직

개요: 이 수업은 R에서 실행 흐름을 제어하는 기본 메커니즘을 다룹니다. 여러 표현식을 하나의 단일 단위로 묶는 방법과 조건 분기(if-else) 및 다양한 반복 구조(for, repeat, while)를 활용해 데이터 분석 작업을 자동화하고 복잡한 로직을 처리하는 방법을 중심으로 합니다.

학습 결과:

  • 중괄호를 사용해 여러 R 표현식을 하나의 문장으로 묶는다.
  • 논리적 조건에 따라 특정 코드 블록을 실행하기 위해 조건부 로직을 구현한다.
  • 반복 구조를 만들어 벡터나 리스트와 같은 데이터 구조에 대해 반복적인 작업을 자동화한다.

🔹 수업 7: 사용자 정의 함수 개발 및 스코핑

개요: 이 수업은 R을 대화형 계산기에서 프로그래밍 언어로 전환하는 방법을 탐구합니다. 사용자 정의 함수를 개발하는 방법에 대해 설명하며, 함수 정의 구문, 인수 처리, 렉시컬 스코핑 규칙, 그리고 일반 함수와 메서드를 통해 S3 객체 지향 시스템의 기초 개념을 다룹니다.

학습 결과:

  • 사용자 정의 함수 생성 및 호출: 형식적 매개변수와 사용자 정의 이항 연산자를 가진 함수를 정의한다.
  • 인수 및 스코핑 관리: 위치 인수와 키워드 인수 매칭을 구분하고, 렉시컬 스코핑이 지역 변수와 자유 변수를 어떻게 관리하는지 설명한다.
  • 상태 변경 및 사용자 정의 환경 구현: 클로저와 슈퍼 할당 연산자(<<-)를 사용해 상태를 유지하고 시작/세션 함수를 통해 R 환경을 사용자 맞춤 설정한다.

🔹 수업 8: 통계 모델링: 선형 및 비선형

개요: 이 수업은 단순 선형 회귀를 넘어서는 통계 모델링을 위한 R의 포괄적인 도구 세트를 탐구합니다. 일반 함수를 통해 모델 정보를 추출하고, ANOVA를 통해 모델을 비교하며, 이진 데이터 및 카운트 데이터에 대한 일반화선형모델(GLM)을 적합시키는 방법과 함께 비선형 모델링 기법을 다룹니다.

학습 결과:

  • 일반적인 R 함수를 사용해 적합된 모델의 정보를 추출하고, 요약하고, 시각화한다.
  • ANOVA 표를 사용해 모델을 비교하고, 효율적인 문법으로 기존 모델을 업데이트한다.
  • 적절한 분포와 링크 함수(예: 로짓, 프로빗, 포아송)를 사용해 일반화선형모델(GLM)을 적합시킨다.

🔹 수업 9: 고수준 및 저수준 그래픽을 활용한 데이터 시각화

개요: 이 수업은 R의 포괄적인 그래픽 기능을 다룹니다. 완전한 차트를 생성하는 고수준 플롯 함수와 기존 디스플레이에 특정 요소를 추가하는 저수준 명령어 사이의 차이를 구분합니다. 그래픽 매개변수를 조작해 정교한 미적 조절을 하고, 여러 도표 환경을 관리하는 방법을 배웁니다.

학습 결과:

  • 고수준(plot(), hist() 등)과 저수준(points(), lines() 등) 그래픽 함수의 차이를 구분하고 구현한다.
  • 영구적(par()) 및 일시적(함수 수준) 조건을 사용해 그래픽 매개변수를 적용하고 관리한다.
  • 복잡한 레이아웃을 조정하고, 다변량 데이터 표시 및 여러 도표 환경을 처리한다.

🔹 수업 10: 패키지 생태계 및 환경 구성

개요: 이 수업은 R의 구조적 기반을 탐구하며, 패키지 생태계, CRAN의 역할, 함수를 관리하기 위한 네임스페이스 메커니즘에 초점을 맞춥니다. 또한 다양한 인터페이스를 통해 R을 실행하는 실용적인 로드맵과 명령줄 인수 및 키보드 단축키를 활용한 환경 구성 방법을 설명합니다.

학습 결과:

  • 패키지, 네임스페이스, CRAN 저장소 시스템 간의 관계를 이해한다.
  • 데이터 조작, 통계 모델링, 복잡한 수학적 플롯을 포함하는 종합적인 "샘플 세션"을 실행한다.
  • 명령줄 플래그와 환경 변수를 사용해 R 시작 환경을 구성한다.