R:패키지: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
잔글편집 요약 없음
 
(같은 사용자의 중간 판 9개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{R}}<br />
{{R}}<br />


==패키지 설치하기==
==개요==
다양한 기능들을 구현해둔 패키지가 많다.
 
==패키지 관련함수==
 
===패키지 관리===
{| class="wikitable"
{| class="wikitable"
|+
!의도
!의도
!방법
!방법
11번째 줄: 15번째 줄:
|-
|-
|패키지 부착
|패키지 부착
|library("패키지명")
|library(패키지명) #따옴표 없이 입력한다.
|-
|갱신할 수 있는 패키지 파악
|old.packages()
|-
|패키지 갱신
|update.pakages()
|}
|}


<br />
===패키지 사용===
 
==ddply==
데이터를 집계하는 패키지.
{| class="wikitable"
{| class="wikitable"
!이름
!의도
!기원
!방법
!기능
!사용법
|-
|-
|ddply
|현재 사용되는 패키지 파악
|
|search()
|집계데이터를 만든다.
데이터셋을 고르고, 집계할 기준열을 고르고,
 
여기에 적용할 함수를 써서 계산열에 저장.
 
(집계 기준에 해당하는 데이터끼리 연산되어 계산열에 저장된다.)
 
ex) 집계기준열이 성적 A라면, 성적 A에 해당하는 이들의 평균만 계산하여 계산열에 저장한다.
{| class="wikitable"
|+
!성적
!평균
|-
|-
|A
|패키지 구동 취소
|A의 평균만 모아진다.
|detach("search에서 나온 패키지명")
|-
|B
|B의 평균만 모아진다.
|-
|...
|...
|}
|}
|새로운데이터셋 = ddply(데이터셋,
c("집계기준열1, 집계기준열2, ...), summarise,


계산열 = 계산함수(데이터셋에서연산할컬럼명),
<br />
 
계산열2 = 계산함수(데이터셋에서연산할컬럼명2),


...
==개인패키지 사용==
source("경로.R")


)
여기에서 R파일을 불러와 함수를 가져올 수 있다.(경로는 현재 스크립트가 있는 한 단계 위 경로에서부터이다.)
|}<br />


==apply==
<nowiki>#</nowiki>이때.. 함수가 겹치는 경우엔 어떻게 될까??
library(dplyr)


library(reshape)


library(plyr)
==패키지 사용 팁==


===apply===
===패키지 한번에 실행하고, 없으면 설치하기===
for문이 여러 개의 열에 대해 작동하게 하려면 코드가 복잡해진다. apply는 동시에 여러 행과 열을 연산하는 데 편하다.
{| class="wikitable"
{| class="wikitable"
!이름
|+
!기원
!설명
!기능
!함수
!사용법
|-
|-
|apply()
|패키지를 실행할 때마다 오류를 맞이하고 설치하고 다시 실행하는 건 비효율적이다.
|
다음과 같이 실행하면 패키지가 설치되어 있다면 실행결과를, 설치되어있지 않다면 설치 후 결과를 반환한다.
|
|apply(데이터셋[범위], 계산기준, 연산)
|}
 
==dplyr==
구성이 복잡한 경우, <code>%>%</code>를 활용하여 연산을 펴서 입력하기 위한 도구이다.
 
데이터셋[범위] %>% #범위를 설정하고


rowMeans() %>% #연산할 함수를 설정한다.
변수 <- check_packages(c("패키지"))
 
|<syntaxhighlight lang="r">
head() #이어서 연산할 것들을 덧붙인다.
check_packages <- function(pkg){
 
  new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
한 줄로 쓸 수 있지만, 그렇게 하면 읽기 복잡해진다. 이를 직관적으로 보기 위한 기능.
  if (length(new.pkg))
 
    install.packages(new.pkg, dependencies = TRUE)
 
  result <- sapply(pkg, require, character.only = TRUE)
또한 %>% 로 다른 명령어와 연계할 수 있어, 굉장히 편하게 사용할 수 있다.<br />
  return(result)
 
}
===집계데이터 만들기===
options(scipen = 999)#이 옵션을 넣어야 숫자를 지수형이 아닌, 그냥 숫자로 표시한다.
{| class="wikitable"
</syntaxhighlight>
!이름
!기원
!기능
!사용법
|-
|-
|group_by()
|
|
|집계기준 조합을 정해준다.
|
 
집계된 그룹을 따라 연산해 열을 만들 수 있다.
|집계데이터 = 데이터셋 %>%
group_by(열이름1, 열이름2) %>%
 
summarise(열이름3 = 연산, 열이름4 = 연산, ....)
|-
|-
|ungroup()
|
|
|다시 사용할 땐 에러방지를 위해 ungroup 해주기.
|데이터형 = 기존데이터형 %>%
ungroup()
|-
|count()
|
|
|그룹화 이후에 사용하면 해당 그룹에 속한 데이터 갯수를 세어준다.
|집계데이터 = 데이터셋 %>%
group_by(열이름1, 열이름2) %>%
count()
|}
|}
<br />

2020년 9월 26일 (토) 20:39 기준 최신판

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

개요[편집 | 원본 편집]

다양한 기능들을 구현해둔 패키지가 많다.

패키지 관련함수[편집 | 원본 편집]

패키지 관리[편집 | 원본 편집]

의도 방법
패키지 설치 install.pakages("패키지명")
패키지 부착 library(패키지명) #따옴표 없이 입력한다.
갱신할 수 있는 패키지 파악 old.packages()
패키지 갱신 update.pakages()

패키지 사용[편집 | 원본 편집]

의도 방법
현재 사용되는 패키지 파악 search()
패키지 구동 취소 detach("search에서 나온 패키지명")


개인패키지 사용[편집 | 원본 편집]

source("경로.R")

여기에서 R파일을 불러와 함수를 가져올 수 있다.(경로는 현재 스크립트가 있는 한 단계 위 경로에서부터이다.)

#이때.. 함수가 겹치는 경우엔 어떻게 될까??


패키지 사용 팁[편집 | 원본 편집]

패키지 한번에 실행하고, 없으면 설치하기[편집 | 원본 편집]

설명 함수
패키지를 실행할 때마다 오류를 맞이하고 설치하고 다시 실행하는 건 비효율적이다.

다음과 같이 실행하면 패키지가 설치되어 있다면 실행결과를, 설치되어있지 않다면 설치 후 결과를 반환한다.

변수 <- check_packages(c("패키지"))

check_packages <- function(pkg){
  new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
  if (length(new.pkg)) 
    install.packages(new.pkg, dependencies = TRUE)
  result <- sapply(pkg, require, character.only = TRUE)
  return(result)
}
options(scipen = 999)#이 옵션을 넣어야 숫자를 지수형이 아닌, 그냥 숫자로 표시한다.