반응형

[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

반응형

+ Recent posts