반응형

[R] 정규성 검정 (3) : 정량적 검정 (Shapiro-Wilk, Kolmogorov-Smirnov) - shapiro.test(), ks.test()

 

 많은 통계 분석에서 전제조건으로 데이터의 정규성(normality)을 요구하곤 한다. 검정하는 여러 방법이 다음과 같이 존재하지만, 그중 어떤 하나만으로도 결론 내릴 수는 없다.

 

정규성 검정 방법

1) QQ plot : 2022.08.11 - [기술 통계/R] - [R] 정규성 검정 (1) : QQplot - qqnorm()

2) 히스토그램: 2022.08.11 - [기술 통계/R] - [R] 정규성 검정 (2) : 히스토그램 - hist(), dnorm()

3) 통계적 검정

 

본 글에서는 정량적 검정(Shapiro-Wilk, Kolmogorov-Smirnov test)으로 검정하는 방법에 대해 확인해볼 것이다.

 

코드를 보여드리기에 앞서 워킹 디렉토리부터 지정하겠다.

워킹 디렉토리에 관한 설명은 다음 링크된 포스트에서 볼 수 있다.

2022.08.05 - [통계 프로그램 사용 방법/R] - [R] 작업 디렉토리 (Working Directory) 지정 - getwd(), setwd()

setwd("C:/Users/user/Documents/Tistory_blog")

 

*실습용 데이터는 아래 링크를 클릭하면 다운로드할 수 있습니다.

2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.08.10)

 

분석용 데이터 (update 22.08.10)

2022년 08월 10일 버전입니다. 변수는 계속하여 추가될 예정입니다. 다음 카테고리에 있는 글에서 이용된 데이터입니다. - 기술 통계 - 통계 프로그램 사용 방법

medistat.tistory.com

 

데이터를 불러와 a에 객체로 저장하겠다.

데이터 불러오는 방법은 다음 링크에서 볼 수 있다.

2022.08.05 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx()

2022.08.08 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : CSV - read_csv(), read.csv(), fread()

2022.08.10 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : SAS file (.sas7bdat) - read.sas7bdat(), read_sas()

 

install.packages("readr")
library("readr")
a<-read_csv("Data.csv")

 

1) Shapiro-Wilk test

a라는 객체에 있는 데이터 중 "ALT"로 Shapiro-Wilk test를 시행할 것이다. 코드는 다음과 같다.

#R 설치 시 기본으로 설치되는 패키지를 사용하므로 별도 설치가 필요 없다.

shapiro.test(a$ALT)

 

결과

	Shapiro-Wilk normality test

data:  a$ALT
W = 0.9982, p-value = 0.3749

 

2) Kolmogorov-Smirnov test

a라는 객체에 있는 데이터 중 "ALT"로 Kolmogorov-Smirnov test를 시행할 것이다. 코드는 다음과 같다.

#R 설치 시 기본으로 설치되는 패키지를 사용하므로 별도 설치가 필요 없다.

ks.test(a$ALT, "pnorm", mean=mean(a$ALT), sd=sd(a$ALT))

결과

	One-sample Kolmogorov-Smirnov test

data:  a$ALT
D = 0.015397, p-value = 0.9717
alternative hypothesis: two-sided

 

해석방법

초급자: p-value>0.05이므로 정규성을 따른다.

 

중급자:

 

귀무 가설과 대립 가설은 다음과 같다.

-귀무 가설: ALT는 정규성을 따른다.

-대립 가설: ALT는 정규성을 따르지 않는다.

 

이때 제 1종 오류는 다음과 같다.

제 1종 오류

=귀무 가설이 참인데도 기각하고 대립 가설을 택함

=ALT는 정규성을 따르는데도 따르지 않는다고 결론 내림

 

p-value는 제 1종 오류를 범할 확률을 의미하므로 다음과 같이 결론내릴 수 있다.

결론: 정규성을 따르는 것이 진실인데, 따르지 않는다고 결론내렸을 확률이 0.05보다 크다.

=정규성을 따르는 것이 진실인데, 따르지 않는다고 결론내린 것은 잘못일 수 있다.

=정규성을 따르지 않는다고는 할 수 없다.

 

고급자:

-(비록 본 데이터는 n수가 충분하지만) n수가 굉장히 적다면 정규성 검정을 잘 통과하므로 결과를 맹신해서는 안 된다.

-본 데이터의 n수는 1,000명으로 2,000명 미만이므로 Shapiro-Wilk test의 결과를 인용한다. (SAS 기준, 2,000명까지는 Shapiro-Wilk test을 계산해주고, Kolmogorov-Smirnov test는 2,000명 이상이 필요하다.)

-또한, QQplot과 히스토그램의 결과도 고려하여 정규성 여부를 판단해야 한다.



정규성 검정은 p-value가 0.05보다 크기를 바라게 되는 몇 안 되는 통계 검정 중 하나다.

많이 쓰이는 통계 분석 중 이런 검정은 세 가지가 있다

1) 정규성 검정 (Normality test): Shapiro-Wilk test, Kolmogorov-Smirnov test

2) Ordinal logistic regression의 proportional odds assumption 검정인 Score test

3) Cox regression의 proportional hazard assumption 검정인 Schoenfeld residual test

 

p-value가 0.05보다 클 때, 이 분석들의 결론은 "정규성을 위반한다고 볼 수는 없었다.", "비례 오즈(위험) 가정을 위반한다고 볼 수는 없었다." 라고 표현하게 된다.

 

R 정규성 검정 (정량적 검정) 정복 완료!

 

작성일: 2022.08.11.

최종 수정일: 2022.08.11.

이용 프로그램: R 4.1.3, RStudio v1.4.1717

운영체제: Windows 10

 

반응형
반응형

[R] 정규성 검정 (2) : 히스토그램 - hist(), dnorm()

 

 많은 통계 분석에서 전제조건으로 데이터의 정규성(normality)을 요구하곤 한다. 검정하는 여러 방법이 다음과 같이 존재하지만, 그중 어떤 하나만으로도 결론 내릴 수는 없다.

 

정규성 검정 방법

1) QQ plot : 2022.08.11 - [기술 통계/R] - [R] 정규성 검정 (1) : QQplot - qqnorm()

2) 히스토그램

3) 정량적 검정: 2022.08.11 - [기술 통계/R] - [R] 정규성 검정 (3) : 정량적 검정 (Shapiro-Wilk, Kolmogorov-Smirnov) - shapiro.test(), ks.test()

 

본 글에서는 히스토그램으로 검정하는 방법에 대해 확인해볼 것이다.

 

코드를 보여드리기에 앞서 워킹 디렉토리부터 지정하겠다.

워킹 디렉토리에 관한 설명은 다음 링크된 포스트에서 볼 수 있다.

2022.08.05 - [통계 프로그램 사용 방법/R] - [R] 작업 디렉토리 (Working Directory) 지정 - getwd(), setwd()

setwd("C:/Users/user/Documents/Tistory_blog")

 

*실습용 데이터는 아래 링크를 클릭하면 다운로드할 수 있습니다.

2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.08.10)

 

분석용 데이터 (update 22.08.10)

2022년 08월 10일 버전입니다. 변수는 계속하여 추가될 예정입니다. 다음 카테고리에 있는 글에서 이용된 데이터입니다. - 기술 통계 - 통계 프로그램 사용 방법

medistat.tistory.com

 

데이터를 불러와 a에 객체로 저장하겠다.

데이터 불러오는 방법은 다음 링크에서 볼 수 있다.

2022.08.05 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx()

2022.08.08 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : CSV - read_csv(), read.csv(), fread()

2022.08.10 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : SAS file (.sas7bdat) - read.sas7bdat(), read_sas()

 

install.packages("readr")
library("readr")
a<-read_csv("Data.csv")

a라는 객체에 있는 데이터 중 "ALT"의 히스토그램을 그려볼 것이다. 코드는 다음과 같다.

#R 설치 시에 자동으로 설치되는 패키지에 있는 함수들이므로 별도의 패키지를 설치할 필요가 없다.

hist(a$ALT, prob=TRUE)
ALTrange<-seq(min(a$ALT),max(a$ALT),length=max(max(a$ALT)-min(a$ALT),100))
ND<-dnorm(ALTrange,mean=mean(a$ALT),sd=sd(a$ALT))
lines(ALTrange, ND, lwd=2)

코드 설명

이해하지 않아도 된다.

모르겠으면, 그저 "a$ALT"을 원하는 변수명으로 바꾸어 코드를 실행하면 된다.

 

(1)hist(a$ALT, prob=TRUE): "a"라는 객체의 "ALT열"에 있는 데이터로 히스토그램을 그리시오.

(2)ALTrange<-seq(min(a$;ALT),max(a$ALT),length=max(max(a$ALT)-min(a$ALT),100)): ALT의 최댓값에서 최솟값을 뺀 값

(3)ALTrange<-seq(min(a$ALT),max(a$ALT),length=max(max(a$ALT)-min(a$ALT),100)): "ALT의 최댓값에서 최솟값을 뺀 값"과 100중 큰 것

(4)ALTrange<-seq(min(a$ALT),max(a$ALT),length=max(max(a$ALT)-min(a$ALT),100)): 등차수열을 만들 건데, 가장 작은 값은 ALT의 최솟값과 같고, 가장 큰 값은 ALT의 최댓값과 같다. 수열에 있는 숫자의 개수(length)는  (3)에서 구한 값

(5)ALTrange<-seq(min(a$ALT),max(a$ALT),length=max(max(a$ALT)-min(a$ALT),100))(4)에서 구한 수열을 ALTrange에 저장한다.

(6)ND<-dnorm(ALTrange,mean=mean(a$ALT),sd=sd(a$ALT)): 평균은 ALT의 평균, 표준편차는 ALT의 표준편차인 정규분포의 확률밀도함수값을 ALTrange 수열 내 각 항에 대해 구한다.
(7)lines(ALTrange, ND, lwd=2): x축에는 ALTrange, y축에는 ND를 넣고 선으로 잇되 선의 굵기는 2로 한다.


 

결과

 

해석방법

히스토그램 막대가 정규분포 곡선 상에 있음: 정규성 따름

히스토그램 막대가 정규분포 곡선 에서 벗어남: 정규성 따르지 않음

 

따라서, "대부분의 히스토그램 막대가 정규분포 곡선 상에 있으므로 정규성을 따른다고 할 수 있다."

 

 

 

R 정규성 검정 (히스토그램) 정복 완료!

 

작성일: 2022.08.11.

최종 수정일: 2022.08.31.

이용 프로그램: R 4.1.3, RStudio v1.4.1717

운영체제: Windows 10

 

반응형
반응형

[R] 정규성 검정 (1) : Q-Q plot - qqnorm(), qqline()

 

 많은 통계 분석에서 전제조건으로 데이터의 정규성(normality)을 요구하곤 한다. 검정하는 여러 방법이 다음과 같이 존재하지만, 그중 어떤 하나만으로도 결론 내릴 수는 없다.

 

정규성 검정 방법

1) Q-Q plot

2) 히스토그램: 2022.08.11 - [기술 통계/R] - [R] 정규성 검정 (2) : 히스토그램 - hist(), dnorm()

3) 정량적 검정: 2022.08.11 - [기술 통계/R] - [R] 정규성 검정 (3) : 정량적 검정 (Shapiro-Wilk, Kolmogorov-Smirnov) - shapiro.test(), ks.test()

 

본 글에서는 Q-Q plot으로 검정하는 방법에 대해 확인해볼 것이다.

 

코드를 보여드리기에 앞서 워킹 디렉토리부터 지정하겠다.

워킹 디렉토리에 관한 설명은 다음 링크된 포스트에서 볼 수 있다.

2022.08.05 - [통계 프로그램 사용 방법/R] - [R] 작업 디렉토리 (Working Directory) 지정 - getwd(), setwd()

setwd("C:/Users/user/Documents/Tistory_blog")

 

*실습용 데이터는 아래 링크를 클릭하면 다운로드할 수 있습니다.

2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.08.10)

 

분석용 데이터 (update 22.08.10)

2022년 08월 10일 버전입니다. 변수는 계속하여 추가될 예정입니다. 다음 카테고리에 있는 글에서 이용된 데이터입니다. - 기술 통계 - 통계 프로그램 사용 방법

medistat.tistory.com

 

데이터를 불러와 a에 객체로 저장하겠다.

데이터 불러오는 방법은 다음 링크에서 볼 수 있다.

2022.08.05 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx()

2022.08.08 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : CSV - read_csv(), read.csv(), fread()

2022.08.10 - [통계 프로그램 사용 방법/R] - [R] 데이터 불러오기 : SAS file (.sas7bdat) - read.sas7bdat(), read_sas()

 

install.packages("readr")
library("readr")
a<-read_csv("Data.csv")

a라는 객체에 있는 데이터 중 "ALT"의 Q-Q plot을 그려볼 것이다. 코드는 다음과 같다.

 

# install.packages("stats") 
	#stats 패키지는 R 설치 시 함께 딸려오므로 설치 필요 없음
# library("stats)

qqnorm(a$ALT)
qqline(a$ALT)

qqnorm(a$ALT): "a"라는 객체의 "ALT열"에 있는 데이터로 Q-Q plot을 그리시오.
qqline(a$ALT): 추세선을 그리시오.

 

결과

해석방법

데이터가 직선상에 있음: 정규성 따름

데이터가 직선에서 벗어나 있음: 정규성 따르지 않음

 

따라서, "대부분의 데이터들이 일직선 상에 있으므로 정규성을 따른다고 할 수 있다."

 

 

 

Q-Q plot 이론은 다음 링크에서 확인할 수 있다.

2022.08.12 - [통계 이론] - [이론] Q-Q Plot (Quantile-Quantile Plot)

 

[이론] Q-Q Plot (Quantile-Quantile Plot)

[이론] Q-Q Plot (Quantile-Quantile Plot) 정규성을 검정할 때 Q-Q Plot을 쓰곤 한다. 그런데 이런 궁금증이 들 수 있다. 왜 Q-Q Plot이 직선에 가까운 것이 정규성을 따른다는 뜻인가? 이에 대해 조목조목..

medistat.tistory.com

 

 

R 정규성 검정 (Q-Q plot) 정복 완료!

 

작성일: 2022.08.11.

최종 수정일: 2022.08.31.

이용 프로그램: R 4.1.3, RStudio v1.4.1717

운영체제: Windows 10

 

반응형
반응형

[SAS] SAS 데이터 (.sas7bdat) 불러오기

 

 SAS와 같은 프로그램을 다루다 보면 참 어이없는 곳에서 막히곤 하는데, SAS에서 SAS 파일(.sas7bdat)을 불러오는 것이 대표적인 사례다. 엑셀 파일도, CSV 파일도 불러올 줄 알지만 막상 sas 데이터 파일을 주면 어떻게 쓸지 모르는 상황이 발생할 수 있다. 

 

 하지만 매우 간단하다.

 정답부터 이야기하면 다음과 같다.

1) 라이브러리로 쓸 폴더에 .sas7bdat 파일을 넣는다.

2) 라이브러리를 선언한다.

3) 사용한다.

 

예를 들어, 

1) "C:\Users\user\Documents\Tistory_blog"에 "df.sas7bdat"라는 파일이 있는 상황을 가정하자.

(파일은 다음 링크를 클릭하여 다운받도록 한다.

2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.08.10))

2) 그렇다면 먼저 "C:\Users\user\Documents\Tistory_blog"을 라이브러리로 지정한다.

(라이브러리 지정 방법은 다음 링크를 클릭하여 확인하도록 한다.

2022.08.05 - [통계 프로그램 사용 방법/SAS] - [SAS] 라이브러리 만들기 - LIBNAME)

LIBNAME hong "C:/Users/User/Documents/Tistory_blog";

3) "Data="구문에 "hong.df"를 넣어 사용하면 된다. 예를 들어 평균을 구한다면 다음 코드를 사용한다.

PROC MEANS DATA=hong.df; 
VAR ALT;
RUN;

 

 

왜 이런 것일까?

 

 파일을 불러오던 상황을 다시 한번 생각해보자.

2022.08.05 - [통계 프로그램 사용 방법/SAS] - [SAS] 데이터 불러오기 및 저장하기 - PROC IMPORT, PROC EXPORT

 엑셀 파일을 불러와 특정 라이브러리에 저장하면 .sas7bdat 파일이 생성된 것을 알 수 있었다. 즉, 어떤 .sas7bdat파일을 특정 폴더에 넣는 것은 엑셀 파일을 불러와 특정 라이브러리에 저장한 것과 같은 의미다. 따라서 폴더에 넣고 사용하기만 하면 되는 것이다.

 SAS에서 라이브러리는 영구폴더를 지정한 것과 같다는 것을 다시 한번 명심하자.

 

 

SAS 데이터 (.sas7bdat) 불러오기 정복 완료!

 

작성일: 2022.08.10.

최종 수정일: 2022.08.10.

이용 프로그램: SAS v9.4

운영체제: Windows 10

 

 

반응형
반응형

 

[R] 데이터 저장하기 : CSV 파일 - write.csv(), write_csv()

 

 R에서 만든 데이터를 파일로 내보내고 싶을 때가 있다. 지난번 ".xlsx"파일로 내보내기에 이어 ".csv"파일로 내보내는 방법을 확인해보도록 하겠다.

 

 먼저 저장할 데이터부터 만들겠다. 컴퓨터 내에 있는 엑셀 파일을 읽어와 데이터로 저장하겠다. 방법은 다음 링크를 참고하길 바란다.

2022.08.05 - [통계 프로그램 사용 방법] - [R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx()

 

[R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx()

[R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx() R은 SPSS나 SAS에 비해 많은 종류의 파일을 불러오고 사용하기에 적합하다. 하지만 각 파일마다 불러오는 방법이 다르며, 심지어는 한 종류의..

medistat.tistory.com

#Working Directory 지정
setwd("C:/Users/user/Documents/Tistory_blog")

#엑셀 파일 불러오기
install.packages("readxl")
library("readxl")
a<-read_excel("Data.xlsx")

 

이로써 a에는 "Data.xlsx"에 있던 데이터가 tibble로 저장되게 된다.

이를 다시 ".csv"파일로 내보내 보도록 하겠다.

이때 많이 쓰이는 함수는 두 가지가 있다. 편의에 따라 어떤 것을 사용해도 무관하지만 기본 내장 함수인 "write.csv()"를 더 많이 사용하게 된다.

 

write.csv() (패키지: utils)
write_csv() (패키지: readr)
# (1) write.csv()
# 코드 구조: write.csv(저장할 객체, "저장될 파일의 위치, 이름, 확장자") 

#패키지 설치하기
install.packages("utils") #기본 패키지이므로 설치할 필요 없음
library("utils")

#파일 내보내기
write.csv(a, "Datafile.csv")
#혹은
write.csv(a, "C:/Users/user/Documents/Tistory_blog/Datafile.csv")

코드의 구조를 살펴보면 write.csv()의 괄호 안에 다음 두 가지가 있다.

1) 저장할 객체

2) 저장될 파일의 위치, 이름, 확장자

 

write.csv(a, "Datafile.csv"): a라는 객체를 "Datafile"라는 파일 이름, ".csv"라는 파일 확장자로 이전에 설정한 작업 디렉토리에 저장하겠다는 뜻이다.

 

write.csv(a, "C:/Users/user/Documents/Tistory_blog/Datafile.csv"): 작업 디렉토리를 지정하지 않았거나, 다른 곳에 저장하고 싶으면 위치를 직접 적시해도 좋다.

 

# (2) write_csv()
# 코드 구조: write_csv(저장할 객체, "저장될 파일의 위치, 이름, 확장자") 

#패키지 설치하기
install.packages("readr")
library("readr")

#파일 내보내기
write_csv(a, "Datafile.csv")
#혹은
write_csv(a, "C:/Users/user/Documents/Tistory_blog/Datafile.csv")

 

"write.csv()"와 모든 구조가 같다.

 

R 데이터 저장하기 (내보내기) - CSV 파일 정복 완료!

 

작성일: 2022.08.10.

최종 수정일: 2022.08.10.

이용 프로그램: R 4.1.3

RStudio v1.4.1717

RStudio 2021.09.1+372 "Ghost Orchid" Release 

운영체제: Windows 10, Mac OS 10.15.7

반응형
반응형

 

[R] 데이터 저장하기 : EXCEL 파일 - write_xlsx(), write.xlsx()

 

 R에서 만든 데이터를 파일로 내보내고 싶을 때가 있다. 여러 파일 형식이 있지만 EXCEl 파일 (.xlsx) 형식으로 내보내는 방법부터 확인하고자 한다.

 

 먼저 저장할 데이터부터 만들겠다. 컴퓨터 내에 있는 엑셀 파일을 읽어와 데이터로 저장하겠다. 방법은 다음 링크를 참고하길 바란다.

2022.08.05 - [통계 프로그램 사용 방법] - [R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx()

 

[R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx()

[R] 데이터 불러오기 : EXCEL - read_excel(), read.xlsx() R은 SPSS나 SAS에 비해 많은 종류의 파일을 불러오고 사용하기에 적합하다. 하지만 각 파일마다 불러오는 방법이 다르며, 심지어는 한 종류의..

medistat.tistory.com

#Working Directory 지정
setwd("C:/Users/user/Documents/Tistory_blog")

#엑셀 파일 불러오기
install.packages("readxl")
library("readxl")
a<-read_excel("Data.xlsx")

이로써 a에는 "Data.xlsx"에 있던 데이터가 tibble로 저장되게 된다.

이를 다시 ".xlsx"파일로 내보내보도록 하겠다.

이때 많이 쓰이는 함수는 두 가지가 있다. 편의에 따라 어떤 것을 사용해도 무관하다.

 

write.xlsx() (패키지: openxlsx)
write_xlsx() (패키지: writexl)

 

내보내는 코드는 다음과 같다.

# (1) write.xlsx()
# 코드 구조: write.xlsx(저장할 객체, "저장될 파일의 위치, 이름, 확장자") 

#패키지 설치하기
install.packages("openxlsx")
library("openxlsx")

#파일 내보내기
write.xlsx(a, "Datafile.xlsx")
#혹은
write.xlsx(a, "C:/Users/user/Documents/Tistory_blog/Datafile.xlsx")

코드의 구조를 살펴보면 write.xlsx()의 괄호 안에 다음 두 가지가 있다.

1) 저장할 객체

2) 저장될 파일의 위치, 이름, 확장자

 

write.xlsx(a, "Datafile.xlsx"): a라는 객체를 "Datafile"라는 파일 이름, ".xlsx"라는 파일 확장자로 이전에 설정한 작업 디렉토리에 저장하겠다는 뜻이다.

 

write.xlsx(a, "C:/Users/user/Documents/Tistory_blog/Datafile.xlsx"): 작업 디렉토리를 지정하지 않았거나, 다른 곳에 저장하고 싶으면 위치를 직접 적시해도 좋다.

 

 

# (2) write_xlsx()
# 코드 구조: write_xlsx(저장할 객체, "저장될 파일의 위치, 이름, 확장자") 

#패키지 설치하기
install.packages("writexl")
library("writexl")

#파일 내보내기
write_xlsx(a, "Datafile.xlsx")
#혹은
write_xlsx(a, "C:/Users/user/Documents/Tistory_blog/Datafile.xlsx")

"write_xlsx()"도 모든게 똑같다.

 

 

R 데이터 저장하기 (내보내기) - EXCEL 파일 정복 완료!

 

작성일: 2022.08.10.

최종 수정일: 2022.08.10.

이용 프로그램: R 4.1.3

RStudio v1.4.1717

RStudio 2021.09.1+372 "Ghost Orchid" Release 

운영체제: Windows 10, Mac OS 10.15.7

 

반응형
반응형

[R] 데이터 불러오기 : SAS file (.sas7bdat) - read.sas7bdat(), read_sas()

 

이번엔 SAS 파일을 불러오는 방법을 소개한다.

SAS파일을 간혹 R로 가져올 필요가 있을 때가 있다. 특정 plot을 그리고 싶은데, SAS에서는 지원하지 않는다거나, 아니면 plot이 예쁘지 않거나, 새로운 분석 방법을 적용하고 싶을 때가 해당한다.

 

코드를 보여드리기에 앞서 워킹 디렉토리부터 지정하겠다.

워킹 디렉토리에 관한 설명은 다음 링크된 포스트에서 볼 수 있다.

2022.08.05 - [통계 프로그램 사용 방법] - [SAS] 라이브러리 만들기 - LIBNAME

 

[SAS] 라이브러리 만들기 - LIBNAME

[SAS] 라이브러리 만들기 - LIBNAME SAS를 접하자마자 마주치는 단어가 '라이브러리 (Library)'인데 생소하고 어색한 개념이라 쉽게 이해하기 어려울 것이 사실이다. 필자도 이를 받아들이기까지 짧

medistat.tistory.com

setwd("C:/Users/user/Documents/Tistory_blog")

 

*실습용 데이터는 아래 링크를 클릭하면 다운로드할 수 있습니다.

2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.08.10)

 

분석용 데이터 (update 22.08.10)

2022년 08월 10일 버전입니다. 변수는 계속하여 추가될 예정입니다. 다음 카테고리에 있는 글에서 이용된 데이터입니다. - 기술 통계 - 통계 프로그램 사용 방법

medistat.tistory.com

 

SAS 파일 (.sas7bdat) 불러오기

많이들 쓰는 함수는 두 가지가 있다.

read.sas7bdat() (패키지: sas7bdat)
read_sas() (패키지: haven)

 

필자는 특별한 이유는 없지만 두 번째 함수를 더 선호한다.

 

 

각각의 패키지를 설치하고, 작업 디렉토리 내에 있는 "df.sas7bdat"파일을 불러오도록 하겠다.

 

install.packages("sas7bdat")
library("sas7bdat")
a<-read.sas7bdat("df.sas7bdat")

install.packages("haven")
library("haven")
b<-read_sas("df.sas7bdat")

1) [패키지: sas7bdat] read.sas7bdat()  

 불러온 SAS 파일을 dataframe으로 반환한다.

 

 

2) [패키지: haven] read_sas()  

불러온 SAS 파일을 tibble로 반환한다.

 

 

 

개인 선호도에 따라 아무 함수나 사용해도 큰 문제는 없다.

 

 

R 데이터 불러오기 - SAS 파일 정복 완료!

 

작성일: 2022.08.10.

최종 수정일: 2022.08.10.

이용 프로그램: R 4.1.3

RStudio v1.4.1717

RStudio 2021.09.1+372 "Ghost Orchid" Release 

운영체제: Windows 10, Mac OS 10.15.7

 

반응형
반응형

[R] 데이터 불러오기 : CSV - read_csv(), read.csv(), fread()

.

이번엔 CSV 파일을 불러오는 방법을 소개한다.

 

코드를 보여드리기에 앞서 워킹 디렉토리부터 지정하겠다.

워킹 디렉토리에 관한 설명은 다음 링크된 포스트에서 볼 수 있다.

2022.08.05 - [통계 프로그램 사용 팁] - [R] 작업 디렉토리 (Working Directory) 지정

 

[R] 작업 디렉토리 (Working Directory) 지정 - getwd(), setwd()

[R] 작업 디렉토리 (Working directory) 지정  R에는 작업 디렉토리 (Working directory)라는 개념이 있다. SPSS에는 없는 개념이고, SAS의 라이브러리와는 약간 다른 개념인데, R의 작업 디렉토리는 일의 편리.

medistat.tistory.com

setwd("C:/Users/user/Documents/Tistory_blog")

 

*실습용 데이터는 아래 링크를 클릭하면 다운로드할 수 있습니다.

2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.08.08) - 기술 통계

 

분석용 데이터 (update 22.08.04) - 기술 통계

2022년 08월 04일 버전입니다. 변수는 계속하여 추가될 예정입니다. 다음 카테고리에 있는 글에서 이용된 데이터입니다. - 기술 통계

medistat.tistory.com

 

CSV 파일 불러오기

많이들 쓰는 함수는 세 가지가 있다.

read.csv() (패키지: utils)
read_csv() (패키지: readr)
fread() (패키지: data.table)

각각의 패키지를 설치하고, 작업 디렉토리 내에 있는 파일 "Data.csv"를 불러와 a, b, c에 저장하도록 하겠다.

install.packages("utils") # R 기본 패키지므로 설치 필요 없음
library("utils")
a<-read.csv("Data.csv")

install.packages("readr")
library("readr")
b<-read_csv("Data.csv")

install.packages("data.table")
library("data.table")
c<-fread("Data.csv")

 

1) [패키지: utils] read.csv()  

 read.csv()가 들어있는 utils는 R을 설치할 때 자동으로 딸려오는 패키지다. 따라서 별도의 패키지 설치가 필요 없고 data.frame 형식으로 저장하므로 read.csv()는 CSV를 불러올 때 가장 많이 쓰이는 함수 중 하나다.

 하지만, 다음과 같이 첫 번째 열 이름 (column name)에서 오류가 자주 발생한다는 단점이 있다. 

2) [패키지: readr] read_csv()  

 위와 같은 에러가 발생하지 않고, 실행도 잘 되어서 문제가 없지만, 다음 나오는 fread보다는 조금 느리다는 단점이 있다.

 

3) [패키지: data.table] fread()  

 CSV파일을 정말 빠르게 읽을 수 있는 함수다. 특히 100만행이 넘어가는 데이터부터는 극도의 효율성을 자랑한다. 하지만 간혹 에러가 나는 경우가 있으니 주의할 필요가 있다.

 

 

R 데이터 불러오기 - CSV 정복 완료!

 

작성일: 2022.08.08.

최종 수정일: 2022.08.08.

이용 프로그램: R 4.1.3, RStudio v1.4.1717

운영체제: Windows 10

 
반응형

+ Recent posts