[R] 변수 계산 (산술 연산)
주어진 데이터의 값을 바꾸어 사용해야 할 때가 있다. 이번 포스팅에서는 다음의 연산들을 소개할 것이다.
산술 연산
1) 더하기
2) 빼기
3) 곱하기
4) 나누기
5) 제곱 (승)
6) 로그 (log)
7) 지수
*실습용 데이터는 아래 링크를 클릭하면 다운로드할 수 있습니다.
2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.11.21)
분석용 데이터 (update 22.11.21)
2022년 11월 21일 버전입니다. 변수는 계속하여 추가될 예정입니다. 다음 카테고리에 있는 글에서 이용된 데이터입니다. - 기술 통계 - 범주형 자료 분석 - 모평균 검정 - 반복 측정 자료 분석 - 통계
medistat.tistory.com
코드를 보여드리기에 앞서 워킹 디렉토리부터 지정하겠다.
워킹 디렉토리에 관한 설명은 다음 링크된 포스트에서 볼 수 있다.
2022.08.05 - [통계 프로그램 사용 방법/R] - [R] 작업 디렉토리 (Working Directory) 지정 - getwd(), setwd()
setwd("C:/Users/user/Documents/Tistory_blog")
데이터를 불러와 df에 객체로 저장하겠다.
데이터 불러오는 방법은 다음 링크에서 볼 수 있다.
2022.08.05 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx()
2022.08.10 - [통계 프로그램 사용 방법/R] - [R] 데이터 저장하기 : CSV 파일 - write.csv(), write_csv()
2022.08.10 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : SAS file (.sas7bdat) - read.sas7bdat(), read_sas()
install.packages("readr")
library("readr")
df<-read_csv("Data.csv")
코드
#1) 더하기
df$LIVER_SUM=df$AST+df$ALT
#2) 빼기
df$ALT_DIF=df$ALT-df$ALT_POSTMED
#3) 곱하기
df$MALE_ALC=df$SEX*df$ALCOHOL
#4) 나누기
df$LIVER_RATIO=df$AST/df$ALT
#5) 거듭제곱 (승)
df$SBP_SQ=df$SBP**2
#6) 로그 (log)
df$LOG_ALT=log(df$ALT)
df$LOG10_ALT=log(df$ALT, base=10)
df$LOG7_ALT=log(df$ALT)/log(7)
#7) 지수
df$EXP_ALT=exp(df$ALT)
df$EXP10_ALT=exp(df$ALT*log(10))
#1) 더하기
df$LIVER_SUM=df$AST+df$ALT: df 데이터의 AST와 ALT를 합쳐 그 값을 df에 LIVER_SUM이라는 변수를 새로 만들고 거기에 저장해라.
#2) 빼기
df$ALT_DIF=df$ALT-df$ALT_POSTMED : df 데이터의 ALT에서 ALT_POSTMED를 빼서 그 값을 df 데이터의 ALT_DIF이라는 변수를 새로 만들고 거기에 저장해라.
#3) 곱하기
df$MALE_ALC=df$SEX*df$ALCOHOL : SEX와 ALCOHOL을 곱해 MALE_ALC라는 변수에 저장해라.
#4) 나누기
df$LIVER_RATIO=df$AST/df$ALT : AST를 ALT로 나누어 그 값을 LIVER_RAIO라는 변수에 저장해라
#5) 거듭제곱 (승)
df$SBP_SQ=df$SBP**2 : SPB를 제곱하여 SBP_SQ에 저장해라. 만약 세제곱을 원한다면 "SBP**3"을 사용하면 된다.
#6) 로그 (log)
df$LOG_ALT=log(df$ALT) : ALT에 로그를 씌워 LOG_ALT에 저장해라. 이때 로그의 밑은 $e$다.
df$LOG10_ALT=log(df$ALT, base=10) : ALT에 로그를 씌워 LOG_ALT에 저장해라. 이때 로그의 밑은 이다.
df$LOG7_ALT=log(df$ALT)/log(7) : ALT에 로그를 씌워 LOG_ALT에 저장해라. 이때 로그의 밑은 이다. 원하는 숫자를 밑으로 하고 싶으면 7이 아닌 원하는 숫자를 적으면 된다.
#7) 지수
df$EXP_ALT=exp(df$ALT) : $e$의 ALT승 을 EXP_ALT에 저장해라.
df$EXP10_ALT=exp(df$ALT*log(10)) : 10의 ALT승($10^{ALT}$)을 EXP10_ALT에 저장해라. 만약 10이 아닌 5의 ALT승를원하면 "log(5)"를 사용하면 된다.
연산 시 결측치는 어떻게 처리되는가?
연산시 결측치는 어떻게 처리될까? AST가 결측치인 사람의 ALT값은 존재했다면, AST와 ALT를 더한 LIVER_SUM변수의 값은 어떻게 될까? 다음과 같이 결측치의 개수를 확인해보자. (결측치 확인 방법은 다음 링크를 확인하길 바란다. 2022.11.25 - [통계 프로그램 사용 방법/R] - [R] 결측치 확인 및 개수 확인 - is.na())
코드
sum(is.na(df$LIVER_SUM))
결과
8
즉, 산술계산을 하여도 결측치로 반환한다. 덧셈뿐 아니라 이번 포스팅에 있던 모든 산술 연산은 "결측치는 결측치로"반환한다.
[R] 변수 계산 (산술 연산) 정복 완료!
작성일: 2022.11.25.
최종 수정일: 2022.11.25.
이용 프로그램: R 4.2.2
RStudio v2022.07.2
RStudio 2022.07.2+576 "Spotted Wakerobin" Release
운영체제: Windows 10, Mac OS 12.6.1
'통계 프로그램 사용 방법 > R' 카테고리의 다른 글
[R] 결측치 확인 및 개수 확인 - is.na() (0) | 2022.11.25 |
---|---|
[R] 변수의 유형 (타입, type) 확인 및 변경 - as.factor(), as.numeric(), as.character(), str() (0) | 2022.11.21 |
[R] 조건에 맞는 자료 추출하기 (0) | 2022.11.10 |
[R] 피셔 정확 검정에서 workspace 부족 에러 해결 방법 (1) | 2022.11.10 |
[R] 데이터 저장하기 : CSV 파일 - write.csv(), write_csv() (0) | 2022.08.10 |