R:조건문: 두 판 사이의 차이
잔글 (→정식 형태) |
잔글 (→정식 형태) |
||
26번째 줄: | 26번째 줄: | ||
|switch(옵션, 조건1=명령1, 조건2=명령2, 조건3=명령3, ...) | |switch(옵션, 조건1=명령1, 조건2=명령2, 조건3=명령3, ...) | ||
|조건을 type에 포인팅해주면 조건에 맞는 명령을 실행시킨다. | |조건을 type에 포인팅해주면 조건에 맞는 명령을 실행시킨다. | ||
type에 type=c(조건1, 조건2, ...)형태로 명령 동시실행도 가능. | |||
(이건 해봐야 알듯; 내가 해석하기로 가능하다고;;) | |||
|type=조건 | |type=조건 | ||
switch(type, | switch(type, |
2020년 8월 25일 (화) 21:35 기준 최신판
R언어 공부를 위한 틀 틀: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(데이터셋[범위]) 같은 함수가 있으면 굳이 사용할 필요는 없다.