R:데이터프레임: 두 판 사이의 차이

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


== 개요 ==
==개요==
표 형태로 다양한 데이터타입을 저장할 수 있는, 일상에서 가장 많이 쓰는 자료구조형태.
표 형태로 다양한 데이터타입을 저장할 수 있는, 일상에서 가장 많이 쓰는 자료구조형태.


=== 표시형식 ===
===표시형식===
행 앞에 대괄호가 없이, 그냥 숫자로 인덱싱되어있다.
행 앞에 대괄호가 없이, 그냥 숫자로 인덱싱되어있다.
<br />
<br />
43번째 줄: 43번째 줄:
</syntaxhighlight>
</syntaxhighlight>
|rbind(데이터프레임1, 데이터프레임2)
|rbind(데이터프레임1, 데이터프레임2)
|-
|bind_rows()
|
|단순히 행을 합친다.
|bind_rows(데이터셋1, 데이터셋2)
|-
|-
|merge()
|merge()
80번째 줄: 85번째 줄:
옵션)
옵션)
|-
|-
|inner_join()
|
|합치는 데이터의 교집합을 얻는다.(비는 데이터가 없다.) #열이름 안의 데이터를 중심으로 데이터를 합친다.
|inner_join(A, B, by="열이름")
|-
|Full_join()
|
|데이터를 합치되, 없는 값은 NA처리한다.
|
|-
|Left_join()
|
|
|왼쪽의 데이터를 중심으로 합친다. 왼쪽 자료에서 없는 자료는 NA처리.
왼쪽데이터에 없는 내용은 잘린다.
|
|
|-
|Right_join()
|
|
|위와 반대.
|
|
|}
|}


== 관련함수 ==
==관련함수==
{| class="wikitable"
{| class="wikitable"
!이름
!이름

2020년 8월 24일 (월) 18:48 기준 최신판

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:연구용 팁

개요[편집 | 원본 편집]

표 형태로 다양한 데이터타입을 저장할 수 있는, 일상에서 가장 많이 쓰는 자료구조형태.

표시형식[편집 | 원본 편집]

행 앞에 대괄호가 없이, 그냥 숫자로 인덱싱되어있다.

데이터 결합[편집 | 원본 편집]

이름 기원 기능 사용법
rbind() row bind 데이터를 세로결합한다.(관찰치의 증가)

데이터프레임의 변수(열이름)가 다른 경우, 에러가 뜬다.

서로 다른 변수의 데이터를 결합시키기 전에 두 자료의 변수를 일치시키는 사전작업이 필요하다.

아래의 함수를 거치면 변수가 맞춰진 tmp.df1 과 tmp.df2 를 반환한다.[1]
사용자 정의함수 = function(df1, df2) {
    all.name = union(colnames(df1), colnames(df2))
    diff.name1 = setdiff(all.name, colnames(df1))
    diff.name2 = setdiff(all.name, colnames(df2))
    tmp.df1=df1
    tmp.df2=df2
    if(length(diff.name1)>0) {
        for(i in 1:length(diff.name1)) {
            tmp = matrix(NA, nrow-nrow(df1))
            mode(tmp) = mode(df2[,diff.name1[i]])
            colnames(tmp) = diff.name1[i]
            tmp.df1 = cbind(tmp.df1,tmp) }}
    if(length(diff.name2)>0) {
        for(i in 1:length(diff.name2)) {
            tmp = matrix(NA, nrow-nrow(df2))
            mode(tmp) = mode(df2[,diff.name2[i]])
            colnames(tmp) = diff.name2[i]
            tmp.df2 = cbind(tmp.df2,tmp) }}
    }
rbind(데이터프레임1, 데이터프레임2)
bind_rows() 단순히 행을 합친다. bind_rows(데이터셋1, 데이터셋2)
merge() merge 데이터를 가로결합한다.(변수의 증가) cbind의 경우, 관찰치 수가 동일하고 관측대상이 동일해야만 적용 가능하여 merge를 쓴다.

고객정보를 더 추가하는 등...

옵션 설명
by= 결합기준 결정. 디폴드는 교집합인 intersect(names(x), names(y))이다.

by.x, by.y를 통해 기준변수를 결정할 수 있다.

보통 키 값을 넣어 합친다. c("열이름1, 열이름2") 형태로 둔다.

all= 관측대상에 대해 일치하지 않는 관찰치에 대해.

FALSE면 일치할 때에만 포함한다.

TRUE면 두 데이터에 동시에 존재하지 않는 데이터는 결측치로 추가.

suffixes= by의해 합쳐지는 변수가 아니라, 같은 이름의 변수가 있을 때

suffixes=c(".1", ".2") 로 두어 변수.1, 변수.2로 갈라넣을 수 있다.

merge(데이터프레임1, 데이터프레임2,

옵션)

inner_join() 합치는 데이터의 교집합을 얻는다.(비는 데이터가 없다.) #열이름 안의 데이터를 중심으로 데이터를 합친다. inner_join(A, B, by="열이름")
Full_join() 데이터를 합치되, 없는 값은 NA처리한다.
Left_join() 왼쪽의 데이터를 중심으로 합친다. 왼쪽 자료에서 없는 자료는 NA처리.

왼쪽데이터에 없는 내용은 잘린다.

Right_join() 위와 반대.

관련함수[편집 | 원본 편집]

이름 기원 기능 사용법
view() 데이터를 시각화하여 보여준다.

오름차순, 내림차순의 정렬도 가능

view(데이터프레임)
  1. 양경숙, 김미경(2014). 기초자료분석을 위한 R 입문 p.138