R:자료구조: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
226번째 줄: 226번째 줄:
|시작:끝
|시작:끝
|
|
|시작부터 끝값에 이르기까지 1, -1 간격으로 벡터를 생성한다.
|시작부터 끝값에 이르기까지 1, -1 간격으로 벡터를 생성한다.(다른 언어에서도 흔히 쓰이는 방식)
|시작:끝
|시작:끝
|-
|-

2020년 8월 11일 (화) 17:14 판

R언어 공부를 위한 틀 틀:R

  1. R:개요
    1. R:코딩팁
    2. R:연산자
  2. R:객체
    1. R:자료형
    2. R:자료구조
  3. R:함수
    1. R:자주사용하는 함수
      1. R:aplly계열(반복문, 중복작업)
  4. R:제어문
    1. R:조건문
    2. R:반복문
  5. R:자료조작
    1. R:데이터프레임
    2. R:행렬
  6. R:데이터 저장과 불러오기
    1. R:데이터베이스
    2. R:특정조건 추출하기
  7. R:패키지
    1. R:magrittr(파이프연산자)
    2. R:dplyr(데이터프레임 조작)
    3. R:ggplot2(그래프그리기)
    4. R:KoNLP(한글 텍스트마이닝), wordcloud2(워드클라우드)
    5. R:ddply(데이터 집계, 조작)
    6. R:tidyverse(데이터를 정제하는 패키지들의 집합)
    7. R:jsonlite(JSON 파일 다루기)
    8. R:pbapply(apply계열에 진행바를 보여준다.)
  8. R:활용
    1. R:데이터 접근
    2. R:연관성분석
    3. R:분류분석
  9. R:팁
    1. R:연구용 팁

개요

자료구조를 수용하기 위한 자료객체.

종류

객체 코드명 차원 유형 혼합가능여부
벡터 vector 1 수치, 문자, 복소수, 논리 불가(하나의 유형만 사용 가능)
요인 factor 1 수치/문자 불가
행렬 matrix 2 수치, 문자, 복소수, 논리 불가
데이터프레임 data.frame 2 수치, 문자, 복소수, 논리 가능
시계열 2 수치, 문자, 복소수, 논리 불가
배열 array 2차원이상 수치, 문자, 복소수, 논리 불가
리스트 list 2차원이상 수치, 문자, 복소수, 논리, 표현식, call 등 가능

자주 사용하는 자료형

이름 벡터 행렬 데이터프레임
설명 Combind. 하나의 열을 의미한다.

다른 2차원 이상의 데이터에서 인덱스범위를 지정하는 데 쓰이기도 한다.

Matrix. dataframe.
생성 c(데이터) matrix(

data=데이터,

nrow=행수

ncol=열수

byrow=기준)

data.frame(

변수명=벡터값,

)

필요한 벡터만큼 넣는다.

데이터 접근 일반 언어에서 처음 인덱스가 0인 것과 달리,

R은 1부터 시작한다.

의도 방법(예시)
데이터1개 접근 벡터명[1]
여러 개 접근 벡터명[c(1,3,5,9)]
범위 접근 벡터명[2:5]
제외하고 접근 벡터명[-3]
의도 방법(예시)
데이터1개 접근 구조명[2,3]
여러 개 접근 구조명[c(1,2,3), ]
행 전부 구조명[1, ]
열 전부 구조명[ ,1]
범위 접근 구조명[2:3, ]
제외하고 접근 구조명[ ,-1]

여러 방법을 조합해

구조명[2:3, -2] 등의 형태로 사용 가능

자료형 변환 as.vector(객체) as.matrix(객체) as.data.frame(객체)

데이터형 관련 함수

이름 기원 기능 사용법
head() head 지정한 행만큼 출력한다. head(데이터셋, 지정숫자)
str() 데이터를 확인한다. str(데이터셋)
as() as 데이터형을 변환한다. 열 전체의 변수형을 변환하려면 다음과 같이 한다.

데이터셋$열이름 = as.변수형(데이터셋$열이름)


벡터 관련 함수

이름 기원 기능 사용법
seq() sequence 순차적 데이터 생성.
옵션 설명
along.with=객체명 해당하는 객체와 동일한 크기로 자료열을 생성.
length=자연수 by옵션 대신 이 옵션을 넣으면 증가범위를 자동으로 (마지막-시작) / (자연수-1) 로 잡는다.


seq(from=시작숫자, to=마지막숫자, by=증가범위)
rep() repeat 반복 데이터 생성 rep(반복할값, 반복횟수)
시작:끝 시작부터 끝값에 이르기까지 1, -1 간격으로 벡터를 생성한다.(다른 언어에서도 흔히 쓰이는 방식) 시작:끝
length() length 데이터 크기 파악 length(벡터)

2차원 데이터 관련 함수

직관적인 사용을 위해 %>%를 사용하는데, 이는 dplyr의 기능이다.

이름 기원 기능 사용법
dim() 데이터프레임이나 행렬에서 데이터 크기 파악

행과 열 숫자를 순서대로 제공한다.

dim(데이터셋)

데이터 추가하기, 연산하기

이름 기원 기능 사용법
mutate() 하나의 변수를 추가한다. 데이터셋 = 데이터셋 %>%

mutate(추가할열이름 = 연산식)

mutate_if() 조건에 해당하면 실행한다.

mutate_if(판별문, 실행문)

데이터셋 = 데이터셋 %>%

mutate_if(is.integer, as.numeric)

mutate_at() 지정한 변수들에 대해 계산 적용.

열이름에 '-'를 넣으면 그 변수는 빼고 계산한다.

데이터셋 = 데이터셋 %>%

mutate_at(vars(열이름1, 열이름2, ...,), 연산식)

데이터 추출

이름 기원 기능 사용법
slice() index를 설정하여 원하는 행을 추출한다. 데이터셋 = 데이터셋 %>%

slice(1:10)

select() index를 설정하여 원하는 열을 추출한다.

column명을 쓸 수 있다.

데이터셋 = 데이터셋 %>%

select(1:10, 열이름1, 열이름2, ...)

filter()

subset()

원하는 조건에 해당하는 데이터 추출. 데이터셋 = 데이터셋 %>%

filter(열이름1 = "해당내용")

select_if() 뽑는 조건을 설정할 수 있다.

ex) 데이터타입에 따라 뽑는다든가.

데이터셋 = 데이터셋 %>%

select_if(is.integer)

arrange() 데이터 정렬.

기본적으로 오름차순인데, 변수에 '-'를 붙여주면 내림차순이 된다.

데이터셋 = 데이터셋 %>%

arrange(-열이름)

top_n() 가장 값이 높은 값들을 추출.

top_n(숫자, 열이름)

top_n(5, Year)
distinct() 중복데이터 제거.

해당 열이름에서 하나라도 중복되면 지운다.

데이터셋 = 데이터셋 %>%

distinct(열이름1, 열이름2, 열이름3, ...)

데이터 조작 관련함수


데이터 수치 조작

이름 기원 기능 사용법
quantile() qunatile 각 분위수에 해당하는 값을 꺼낸다. quantile(데이터셋$열이름, probs = c(0.1, 0.3, 0.5, 0.7, 0.9)

10, 30, 50, 70, 90%에 해당하는 값들을 보여준다.

[이걸 변수에 저장하거나 하진 못하나?]

sum() sum 합. sum(데이터셋$열이름)
rowSums() 행별 합. rowSums(데이터셋[범위])

rowSums(데이터셋[2:8])

colSums() 열별 합. colSums(데이터셋[범위])
mean() mean 평균. mean(데이터셋$열이름)
rowMeans() 행별 평균. rowMeans(데이터셋[범위])
sd() 표준편차 sd(데이터셋$열이름)

위 연산들에서 결측치를 생략하고 계산하고자 한다면 뒤에 na.rm=True를 붙여주면 된다. ex) sum(데이터셋[범위], na.rm=True)


데이터 통계

이름 기원 기능 사용법
table() table 빈도 테이블 작성.

열 안에 속한 요소가 몇 번씩 등장하는지 세어 테이블로 만든다.

테이블명 = as.data.frame(table(데이터셋$열이름))
xtabs() 2차원 테이블 작성.

열이름1과 열이름2 안에 나타나는 조합의 수별로 몇 번씩 등장하는지 센다.

테이블명 = as.data.frame(xtabs(~ 데이터셋$열이름1 + 데이터셋$열이름2))