R:조건문

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
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:연구용 팁


정식 형태[편집 | 원본 편집]

다음의 형태로 사용한다.

형태 예시
기본형 if(조건) {명령}
if(조건) {명령1}

else {명령2}

ifelse(조건, 명령1, 명령2)
확장형 switch(옵션, 조건1=명령1, 조건2=명령2, 조건3=명령3, ...) 조건을 type에 포인팅해주면 조건에 맞는 명령을 실행시킨다.

type에 type=c(조건1, 조건2, ...)형태로 명령 동시실행도 가능.

(이건 해봐야 알듯; 내가 해석하기로 가능하다고;;)

type=조건

switch(type,

조건1=명령1,

조건2=명령2,

....)

if(조건) {명령}

else {명령}

조건


한줄 형태[편집 | 원본 편집]

이름 기원 기능 사용법
ifelse() if else 엑셀의 if와 동일하다.

엑셀을 사용할 때처럼 명령 안에 또다시 ifelse를 넣을 수 있다.

ifelse(조건, 참일때명령, 거짓일때명령)
subset() sub set 특정조건을 만족하는 값들만 모아 새로운 데이터셋 형성.

조건 안에 &이나 | 를 사용하여 다양한 조건을 넣을 수도 있다.

subset(데이터셋, 추출조건)
grapl() 문자열에서 조건을 만족하는지 여부 반환.

subset과 혼용하여 특정 문자열을 포함한 데이터만 뽑아낼 수 있다.

grepl("정규표현식", 변수)

subset(데이터셋, grepl("정규표현식", 변수))


다양한 조건문[편집 | 원본 편집]

의도 방법
열1에서 값이 x인 행과 열2에서 값이 y인 행을 뽑는다. 데이터셋[열1 == "x" & 열2 == "y", ]

case[편집 | 원본 편집]

사례가 많아질 경우, 조건식이 너무 길어진다. 이런 경우엔 left_join() 같은 함수를 이용한다.

데이터셋 = left_join(데이터셋1, 케이스셋2, by="케이스명") 으로 합치면 '케이스명'안에 포함된 데이터에 따라 맨 마지막에 케이스셋2의 데이터가 달라붙는다.

예컨대 반별로 담임선생님을 지정할 경우, 케이스명은 class가 될 것이고, 데이터셋1엔 학생정보를, 데이터셋2엔 선생정보를 담아 합치면 학생정보 맨 끝에 교사 정보가 달라붙는다.

apply함수[편집 | 원본 편집]

for문은 기본적으로 하나의 열에 대해서만 작동할 뿐, 여러 row나 column에 계산을 수행하려면 apply함수가 편하다.

이름 기원 기능 사용법
aplly() apply 계산기준이 1이면 행, 2면 열별로 계산한다.

c(1, 2)를 넣으면 행렬 동시에 계산한다.

apply(데이터셋[범위], 계산기준, 명령)
tapply 그룹 간 통계값을 구할 때 사용한다.

데이터셋 열이름의 조합에 따라 그룹별로 연산명령을 수행한다.

tapply(데이터셋$열이름1, 데이터셋$열이름2, ... , 연산명령)
lapply 여러 변수에 동일함수를 한번에 적용할 때 사용. 데이터셋 = 원본데이터셋[범위]

새로운데이터셋 = lapply(데이터셋, function(x) 명령,)

새로운데이터셋 = as.data.frame(데이터셋)

apply를 항상 사용할 필요 없이, colMeans(데이터셋[범위]) 같은 함수가 있으면 굳이 사용할 필요는 없다.