본문 바로가기

R프로그래밍

(15)
[R프로그래밍] 행렬 구조 Ⅱ(apply, 행추가, 열추가, 차원 확인 등) 데이터 구조(벡터, 행렬, 리스트, 데이터프레임) 특집 - 행렬 두번째 apply 함수는 평균이나 분산 등을 계산할 때 각 행이나 열에 일괄적으로 적용하는 함수이다. apply(행렬 또는 배열 이름, dimcode(margin), function(적용할 함수)) 의 형태로 사용한다. ① dimcode는 차원의 수를 말하며, 1 또는 2만 입력할 수 있다. ② dimcode가 1일 때는 행(row), 2일 때는 열(column)에 적용된다. ③ function은 적용할 계산을 넣으면 된다. mean(평균), sum(합계) 등이 해당된다. # apply 함수 m 행렬은 행이나 열을 추가 또는 삭제할 수 없다. 행렬도 벡터이므로 생성할 때부터 고정된 길이와 차원을 가지고 있기 때문이다...
[R프로그래밍] 행렬 구조 Ⅰ(matrix, 선형대수연산, 인덱싱, 필터링) 데이터 구조(벡터, 행렬, 리스트, 데이터프레임) 특집 - 행렬 첫번째 행렬은 모든 원소가 같은 데이터 형태를 갖는 2차원 데이터 구조이다. 즉 벡터(Vector)의 2차원 형태이다. 행렬은 행(row)과 열(column)이 존재하며, 열의 개수나 행의 개수를 지정하지 않으면 열을 우선으로 할당하도록 설정되어있다. ※ 행렬과 배열의 관계 1. 배열? 일정한 규칙에 따라 몇몇 요소가 나열되어 있는 데이터 집합이다. 배열은 차원을 가진다. 2. 행렬과 배열의 관계 ① 행렬은 행의 개수와 열의 개수라는 두 가지 속성을 추가로 갖는 벡터이다. ② 행렬은 '배열'의 한 종류이며, 배열의 특수한 형태라고 볼 수 있다. 정확히 말해 2차원 배열을 행렬이라고 한다. 배열은 2차원 이상의 속성을 가질 수 있..
[R프로그래밍] 벡터 구조 Ⅲ(필터링, subset, which, ifelse 삼항연산, names) 데이터 구조(벡터, 행렬, 리스트, 데이터프레임) 특집 - 벡터 세번째 필터링이란 특정한 '조건'을 만족하는 원소들을 추출하는 작업이다. 전처리에서 많이 사용하는데 보통 전처리에서는 패키지를 많이 사용하지만 R기본 내장함수들을 살펴보겠다. 크게 세 가지 방법이 있다. 1) 인덱싱 방법을 이용한 필터링 2) subset( ) 함수를 이용한 필터링 3) which( ) 함수를 이용한 필터링 첫 번째, ①인덱싱 [ ] 괄호를 통한 필터링 # 인덱싱 방법을 이용한 필터링 var 99] 인덱싱 방법을 이용한 필터링은 행렬(Matrix), 리스트(List), 데이터프레임(Data.frame)에도 똑같이 적용된다. 단, 인덱싱 방법을 이용한 필터링은 NA가 포함되어있다면 NA는 필터링하지 못하고 무조건..
[R프로그래밍] 벡터 구조 Ⅱ(seq, rep, all, any, NA, NULL) 데이터 구조(벡터, 행렬, 리스트, 데이터프레임) 특집 - 벡터 두번째 seq() 연산자는 콜론(:)을 일반화한 것이다. 산술연산을 통해 순서를 만드는 원리이다. # 벡터 seq() 연산 seq(from=12, to=30, by=3) # 12부터 30까지 간격3으로 데이터 생성 seq(12, 30, 3) # from, to, by 생략가능 seq(from=1, to=100, length=10) # 1부터 100까지 10개 데이터 생성 seq(1, 100, length=10) # length는 생략X - seq( )의 from에는 시작값, to에는 끝값을 입력한다. - by옵션에 3을 입력하면 시작값부터 끝값까지 간격3으로 생성된다. - length옵션에 10을 입력하면 시작값..
[R프로그래밍] 벡터 구조 Ⅰ(인덱싱, length, 재사용, 산술 및 콜론연산) 데이터 구조(벡터, 행렬, 리스트, 데이터프레임) 특집 - 벡터 첫번째 벡터는 모든 원소가 같은 데이터 속성을 갖는 1차원 데이터 구조이다. 행렬은 matrix, 리스트는 list, 데이터프레임은 data.frame으로 변수를 선언할 때 데이터 구조를 컴퓨터에게 알려주어야 하지만, 벡터는 별도로 알려주지 않아도 벡터로 인식한다. 벡터를 생성할 때는 값을 바로 넣어주면 되고, 여러 개의 값을 넣어줄 때는 c( ) 연결함수를 통해 생성할 수 있다. # 벡터 선언 x 벡터 안에 값이 여러 개 일때 특정 위치에 있는 값이 무엇인지 확인해야 할 경우에 사용한다. 연산자 [ ]를 이용한다. 다른 프로그래밍 언어는 순서를 셀 때 0부터 세지만 R은 1부터 순서를 매긴다. # 벡터 인덱싱 x 벡터의 크기는..
[R프로그래밍] 샘플링(sampling)과 기초통계, 상관계수 "평균이 얼마인데?" 와 같은 말을 자주 들어봤을 것이다. 평균, 합계, 표준편차, 분산, 상관점수 등 기초통계량은 우리가 직관적으로 어떤 현상을 짐작하는데 도움이 되기 때문이다. 기초통계량은 우리에게 중요한 정보가 된다. 실습에 사용할 데이터를 편하게 생성하기 위해 샘플링(sampling) 함수를 이용할 수 있다. 샘플링은 sample(샘플링 할 값의 범위, size=샘플링 할 개수, replace=T or F (중복추출 여부)) 로 할 수 있다. # generate data in sampling ID
[R프로그래밍] 팩터(Factor) 변수 데이터 프레임 형태의 변수를 요약해서 정보를 확인할 수 있는 함수이다. 데이터의 각 변수(Variable, Column)가 어떤 타입인지, 레코드(행)가 총 몇 개인지, 변수(열)은 몇개인지 확인할 수 있다. # str - data.frame names
[R프로그래밍] 워킹디렉토리 설정, 데이터 불러오기(TXT, CSV file) 데이터 분석을 할 때 실제로는 내장되어있는 샘플 데이터가 아니라 컴퓨터 디렉토리(폴더) 안에 있는 데이터를 R로 불러서 분석을 하게 된다. 따라서 워킹 디렉토리 설정이나 R외부에서 데이터 파일을 불러오는 것은 필수적이다. 워킹 디렉토리는 현재 작업 중인 디렉터리를 말한다. 디렉토리는 흔히 폴더(folder)로 불린다. R에도 기본적으로 사용하는 워킹 디렉터리가 있는데 예를들면 카카오톡이나 구글 크롬에서 첨부파일을 저장하려고 할 때, 특정 폴더를 지정해주지 않으면 기본적으로 '카카오톡 다운로드 폴더'나 '내문서' 에 저장되는데 이것이 워킹 디렉토리이다. 워킹 디렉토리 확인은 getwd() 으로 할 수 있으며, 워킹 디렉토리 변경은 setwd("새 경로") 이다. getwd() s..
[R프로그래밍] 패키지 설치 및 관리 R이나 파이썬(Python)을 이용한 데이터분석의 장점은 오픈소스라는 점이다. 오픈소스는 세계의 여러 개발자들이 알고리즘을 개발코드로 만들어서 패키지로 등록해 놓으면 사용자들이 직접 코딩을 하지 않고도 다양한 알고리즘 패키지를 가져다 쓸 수 있다. 통계분석 패키지도 설치할 수 있고, 그래프를 그리는 패키지도 설치할 수 있고, 머신러닝 패키지도 다운받아서 쓸 수 있다. R에는 수 천개의 패키지가 등록되어있고, 전체 패키지 리스트는 홈페이지(https://cran.r-project.org/)에서 확인할 수 있다. 패키지 설치는 install.packages("패키지명") 을 입력하면 된다. 인터넷에서 다운 받는 것이므로, 컴퓨터가 인터넷에 연결된 상태여야 한다...
[R프로그래밍] 데이터 프레임 필터링, 결측치(NA와 NULL) 결측치(Missing value)란, 데이터를 측정하는데 있어서 어떤 이유로 인해 값을 측정하지 못한 경우를 말한다. 결측치는 NA로 표시하며 NA는 존재하지만 불확실한 값이다. var 데이터 프레임의 전체가 하니라 특정 행, 열만 추출하는 것을 인덱싱이라고 한다. 행과열을 이용한 방식 변수명[행, 열] 으로 인덱싱 할 수 있다. 한 개의 열만 인덱싱 했을 경우에는 데이터 프레임 형태를 유지할 필요가 없다고 판단하여 자동으로 차원이 1차원으로 축소되는데 이를 방지하기 위해서는 drop=F 옵션을 사용한다. class( ) 명령어로는 데이터 구조를 파악할 수 있다. student_id = 3 3 > 4 & 3 >= 3 3 > 4 | 3 >= 3 var var[var$mid_score >= 8..