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

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
5번째 줄: 5번째 줄:


===종류===
===종류===
데이터형과 별개로 있는 자료형이다.
{| class="wikitable"
{| class="wikitable"
|+
!객체
!객체
!코드명
!코드명
12번째 줄: 12번째 줄:
!유형
!유형
!혼합가능여부
!혼합가능여부
!객체 속성
|-
|-
|벡터
|벡터
17번째 줄: 18번째 줄:
|1
|1
|수치, 문자, 복소수, 논리
|수치, 문자, 복소수, 논리
|불가(하나의 유형만 사용 가능)
|불가(하나의 유형만 사용)
|mode(자료유형), length(길이), names(각 성분원소의 이름(인덱스))
|-
|-
|요인
|요인
24번째 줄: 26번째 줄:
|수치/문자
|수치/문자
|불가
|불가
|
|-
|-
|행렬
|행렬
30번째 줄: 33번째 줄:
|수치, 문자, 복소수, 논리
|수치, 문자, 복소수, 논리
|불가
|불가
|mode, length(원소갯수), dim(행, 렬),
nrow(행갯수), ncol(열갯수), dimnames(행, 렬 인덱스)
|-
|-
|데이터프레임
|데이터프레임
36번째 줄: 41번째 줄:
|수치, 문자, 복소수, 논리
|수치, 문자, 복소수, 논리
|가능
|가능
|mode, length(행갯수), dim, nrow, ncol
|-
|-
|시계열
|시계열
42번째 줄: 48번째 줄:
|수치, 문자, 복소수, 논리
|수치, 문자, 복소수, 논리
|불가
|불가
|mode, length, tsp, start(시작시간), end(끝시간), frequency(주기)
|-
|-
|배열
|배열
48번째 줄: 55번째 줄:
|수치, 문자, 복소수, 논리
|수치, 문자, 복소수, 논리
|불가
|불가
|
|-
|-
|리스트
|리스트
54번째 줄: 62번째 줄:
|수치, 문자, 복소수, 논리, 표현식, call 등
|수치, 문자, 복소수, 논리, 표현식, call 등
|가능
|가능
|
|}
|}
==== 속성에의 접근 ====
속성에 접근하려면 <code>해당속성(객체명)</code> 을 기입하면 된다.


==자주 사용하는 자료형==
==자주 사용하는 자료형==
200번째 줄: 212번째 줄:
==벡터 관련 함수==
==벡터 관련 함수==


=== 수열생성 ===
===수열생성===
{| class="wikitable"
{| class="wikitable"
!이름
!이름
235번째 줄: 247번째 줄:
|}
|}


=== 데이터조작 ===
===데이터조작===
{| class="wikitable"
{| class="wikitable"
!이름
!이름
248번째 줄: 260번째 줄:
|}
|}


=== 벡터결합 ===
===벡터결합===
{| class="wikitable"
{| class="wikitable"
!이름
!이름

2020년 8월 11일 (화) 22:08 판

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 수치, 문자, 복소수, 논리 불가(하나의 유형만 사용) mode(자료유형), length(길이), names(각 성분원소의 이름(인덱스))
요인 factor 1 수치/문자 불가
행렬 matrix 2 수치, 문자, 복소수, 논리 불가 mode, length(원소갯수), dim(행, 렬),

nrow(행갯수), ncol(열갯수), dimnames(행, 렬 인덱스)

데이터프레임 data.frame 2 수치, 문자, 복소수, 논리 가능 mode, length(행갯수), dim, nrow, ncol
시계열 2 수치, 문자, 복소수, 논리 불가 mode, length, tsp, start(시작시간), end(끝시간), frequency(주기)
배열 array 2차원이상 수치, 문자, 복소수, 논리 불가
리스트 list 2차원이상 수치, 문자, 복소수, 논리, 표현식, call 등 가능

속성에의 접근

속성에 접근하려면 해당속성(객체명) 을 기입하면 된다.

자주 사용하는 자료형

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

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

벡터를 결합하여 행렬이나 데이터프레임을 만들기도 한다.

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

data=데이터,

nrow=행수

ncol=열수

byrow=기준)

data.frame(

변수명(열이름)=벡터1,

변수명(열이름)=벡터2,

)

필요한 벡터만큼 넣는다.

데이터 접근 일반 언어에서 처음 인덱스가 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(벡터)

벡터결합

이름 기원 기능 사용법
cbind() column 벡터를 결합해 행렬을 만든다.
deparse.level
옵션 설명
0 함수 내에 정의된 이름만 사용
1 기존에 정의된 객체 이름 사용
2 이름 자동 생성
cbind(벡터1, 벡터2, 행렬, 데이터프레임 ..., deparse.level=1)
rbind() row

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))