본문 바로가기
프로그래밍언어/R

[R] : 데이터 개념 이해하기(3)

by 오주현 2022. 3. 14.
반응형

데이터 개념 이해하기(3)

전국 커피숍 폐업/영업 상황을 살펴본다.

 

install.packages("data.table")

library("data.table")

library("ggplot2")

필요한 패키지를 불러온다.

 

DF <- fread("c:/r/example_coffee.csv", header=T, stringsAsFactors=T, data.table=F)

read.csv()보다 빠른 fread()로 데이터를 불러온다. fread()함수는 data.table 패키지의 함수이다. 관측치가 많고 한글이 많아 데이터가 큰 경우 read.csv()보다 몇 십배는 더 빠른 fread()를 이용해 데이터를 불러오는 게 좋다.

 

str(DF)

데이터 구조를 살펴본다.

 

DF <- subset(DF, select=c(-adress, -adressBystreet, -dateOfclosure, -startdateOfcessation, -duedateOfcessation, -dateOfreOpen, -zip))
str(DF)

불필요한 변수를 삭제한다.

 

range(DF$yearOfStart,na.rm=T)

최초 커피숍을 찾는다.

yearOfStart 변수의 범위를 구하면 최초 등록한 커피숍 연도를 알 수 있다. na.rm=T 인자는 NA값을 제외하고 함수를 실행하기 위해 추가한다.

 

DFFilter <- subset(DF, subset=(stateOfbusiness=="운영중"))
range(DFFilter$yearOfStart,na.rm=T)

subset(DFFilter,subset=(yearOfStart==1967))

subset을 이용해 운영중인 관측치만 별도로 저장한다. 제일 오래된 커피숍은 1967년에 창업한 커피숍이고 두 개나 있다.

 

table(DF$yearOfStart)

해마다 오픈한 커피숍 개수를 찾는다.

 

library("ggplot2")
qplot(yearOfStart,data=DF,geom="bar")

막대그래프로 그려본다.

 

Freq <- table(DF$stateOfbusiness,DF$yearOfStart)
Freq

영업상태 및 연도에 따른 분할표를 만든다.

table()함수에 두 변수를 넣어 분할표를 만든다. 연도별 운영과 폐업 커피숍을 비교한다.

 

which(colnames(Freq)=="1997")

which.max(colnames(Freq))

Freq <- Freq[,c(30:47)]

1997 년도 이상 데이터만 저장한다.

which(논리값이 있는 객체)는 값이 벡터 중 어디에 있는 값인지 알려준다.

which.max()는 벡터의 마지막 위치 값이 얼마인지 알려준다.

 

pFreq <- prop.table(Freq,margin=2)
pFreq

비율도 본다. margin인자 값에 2를 넣으면 열의 비율로 계산하게 된다.

 

NewDF <- data.frame(colnames(Freq),Freq[1,],Freq[2,],pFreq[1,],pFreq[2, ])
NewDF

새로운 데이터프레임으로 자료를 모은다.

 

rownames(NewDF) <- NULL

colnames(NewDF) <- c("Time", "Open", "Close", "pOpen", "pclose")

NewDF

행과 열의 이름을 정리한다.

 

ggplot(NewDF,aes(x=factor(Time),y=Close,group=1))
+ geom_line(colour="steelblue1",size=1)
+ geom_point(colour="steelblue",size=3)
+ geom_line(aes(y=Open),colour="tomato2",size=1)
+ geom_point(aes(y=Open),colour="red",size=6)
+ theme_bw()

마지막으로 라인 그래프를 그린다.

반응형

댓글