[2] 연도마다 오픈하는 커피숍과 폐업하는 커피숍의 수를 도수분포표와 그래프로 표현하시오

http://www.data.go.kr

1단계: 데이터 불러오기

var.coffee <- read.csv('https://www.dropbox.com/s/db2yo6l7kxzasl3/example_coffee.csv?dl=1')

2단계. install packages : data.table, ggplot2

if("ggplot2" %in% installed.packages("ggplot2") == FALSE)install.packages("ggplot2")
library(ggplot2)
if("data.table" %in% installed.packages("data.table") == FALSE)install.packages("data.table")
library(data.table)

3단계. structure

str(var.coffee)

4단계. 불필요한 변수 삭제

var.coffee_2 <- subset(var.coffee, select=c(-adress, -adressBystreet,-dateOfclosure, -startdateOfcessation, -duedateOfcessation, -dateOfreOpen, -zip))

5단계. 최초커피숍 찾기

range(var.coffee_2$yearOfStart, na.rm=T)

6단계. 해마다 오픈한 커피숍 갯수 찾기

table(var.coffee_2$yearOfStart)

1964 1966 1967 1968 1969 1970 1971 1972 1974 1975 1976 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 
   2    2    3    1    2    4    6    3    1    2    5    4    9    8   12    9   11   18   21   21   26   23 
1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 
  25   28   37   50   48   48   41   54   54   46   89  183  398  799  648  654  863 1233 1579 2489 4172 5942 
2012 2013 2014 2015 
6315 7270 9905 3650 

7단계. 6번 결과를 막대 그래프로 그리기.

qplot(var.coffee_2$yearOfStart,data=var.coffee_2,geom='bar')

8단계. 영업상태 및 연도에 따른 분할표 만들기

var.coffee_3 <-table(var.coffee_2$stateOfbusiness,var.coffee_2$yearOfStart)
str(var.coffee_3)
 'table' int [1:2, 1:48] 0 2 0 2 2 1 0 1 0 2 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:2] "운영중" 폐업 등"
  ..$ : chr [1:48] "1964" "1966" "1967" "1968" ...

9단계. outlier 제거를 위해 1997년도 이상 데이터만 저장

start_index <- which(colnames(var.coffee_3)==1997)
#which() 함수는 True 값이 있는 위치를 알려줌. 예를 들어 1997값을 체크했을 때 나오는 값은 해당연도가 시작한 후 몇번째 index값을 갖는지를 알려줌
end_index <- which.max(colnames(var.coffee_3))
#which.max(colnames(8번의 리턴값))
##8번리턴값의 최대값을 보여줌
#8번리턴값 <- 8번리턴값[,c(a:b)] # a부터 b까지만 다시 table로 편집ㅂ
var.coffee_3 <- var.coffee_3[,c(start_index:end_index)]
head(var.coffee_3)

10단계. 폐업과 운영하는 샵의 비율

#prop9번리턴값 <- prop.table(9번, margin=2)
var.coffee_4 <-prop.table(var.coffee_3,margin=2)

11단계. 차트로 표현할 마지막 데이터프레임 생성

new.coffee<-data.frame(colnames(var.coffee_3), var.coffee_3[1,],var.coffee_3[2,], var.coffee_4[1,], var.coffee_4[2,])

12단계. 새로운 데이터 프레임에 가독성 이쓴 이름 부여

colnames(new.coffee)<-c("Year", "Open", "Close", "개업비율", "폐업비율")
ggplot(new.coffee,aes(x <- factor(Year), y <- Close,group=1))+
  geom_line(color='steelblue1',size=1)+
  geom_point(color='steelblue',size=3)+
  geom_line(aes(y=Open),color='tomato2',size=1)+
  geom_point(aes(y=Open),color='red',size=1)+
  theme_bw()

LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyBbMl0g7Jew64+E66eI64ukIOyYpO2UiO2VmOuKlCDsu6TtlLzsiI3qs7wg7Y+Q7JeF7ZWY64qUIOy7pO2UvOyIjeydmCDsiJjrpbwg64+E7IiY67aE7Y+s7ZGc7JmAIOq3uOuemO2UhOuhnCDtkZztmITtlZjsi5zsmKQNCiMjIGh0dHA6Ly93d3cuZGF0YS5nby5rcg0KDQojIyMgMeuLqOqzhDog642w7J207YSwIOu2iOufrOyYpOq4sCANCmBgYHtyfQ0KdmFyLmNvZmZlZSA8LSByZWFkLmNzdignaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vcy9kYjJ5bzZsN2t4emFzbDMvZXhhbXBsZV9jb2ZmZWUuY3N2P2RsPTEnKQ0KYGBgDQoNCiMjIyAy64uo6rOELiBpbnN0YWxsIHBhY2thZ2VzIDogZGF0YS50YWJsZSwgZ2dwbG90Mg0KYGBge3J9DQppZigiZ2dwbG90MiIgJWluJSBpbnN0YWxsZWQucGFja2FnZXMoImdncGxvdDIiKSA9PSBGQUxTRSlpbnN0YWxsLnBhY2thZ2VzKCJnZ3Bsb3QyIikNCmxpYnJhcnkoZ2dwbG90MikNCmlmKCJkYXRhLnRhYmxlIiAlaW4lIGluc3RhbGxlZC5wYWNrYWdlcygiZGF0YS50YWJsZSIpID09IEZBTFNFKWluc3RhbGwucGFja2FnZXMoImRhdGEudGFibGUiKQ0KbGlicmFyeShkYXRhLnRhYmxlKQ0KYGBgDQoNCiMjIyAz64uo6rOELiBzdHJ1Y3R1cmUNCmBgYHtyfQ0Kc3RyKHZhci5jb2ZmZWUpDQpgYGANCg0KIyMjIDTri6jqs4QuIOu2iO2VhOyalO2VnCDrs4DsiJgg7IKt7KCcDQpgYGB7cn0NCnZhci5jb2ZmZWVfMiA8LSBzdWJzZXQodmFyLmNvZmZlZSwgc2VsZWN0PWMoLWFkcmVzcywgLWFkcmVzc0J5c3RyZWV0LC1kYXRlT2ZjbG9zdXJlLCAtc3RhcnRkYXRlT2ZjZXNzYXRpb24sIC1kdWVkYXRlT2ZjZXNzYXRpb24sIC1kYXRlT2ZyZU9wZW4sIC16aXApKQ0KYGBgDQoNCg0KIyMjIDXri6jqs4QuIOy1nOy0iOy7pO2UvOyIjSDssL7quLANCmBgYHtyfQ0KcmFuZ2UodmFyLmNvZmZlZV8yJHllYXJPZlN0YXJ0LCBuYS5ybT1UKQ0KYGBgDQoNCiMjIyA264uo6rOELiDtlbTrp4jri6Qg7Jik7ZSI7ZWcIOy7pO2UvOyIjSDqsK/siJgg7LC+6riwDQpgYGB7cn0NCnRhYmxlKHZhci5jb2ZmZWVfMiR5ZWFyT2ZTdGFydCkNCmBgYA0KDQojIyMgN+uLqOqzhC4gNuuyiCDqsrDqs7zrpbwg66eJ64yAIOq3uOuemO2UhOuhnCDqt7jrpqzquLAuDQpgYGB7cn0NCnFwbG90KHZhci5jb2ZmZWVfMiR5ZWFyT2ZTdGFydCxkYXRhPXZhci5jb2ZmZWVfMixnZW9tPSdiYXInKQ0KIyBxcGxvdCjrpqzsiqTtirgsIOuNsOydtO2EsO2UhOugiOyehCwg67CUKQ0KYGBgDQoNCiMjIyA464uo6rOELiDsmIHsl4Xsg4Htg5wg67CPIOyXsOuPhOyXkCDrlLDrpbgg67aE7ZWg7ZGcIOunjOuTpOq4sA0KYGBge3J9DQp2YXIuY29mZmVlXzMgPC10YWJsZSh2YXIuY29mZmVlXzIkc3RhdGVPZmJ1c2luZXNzLHZhci5jb2ZmZWVfMiR5ZWFyT2ZTdGFydCkNCnN0cih2YXIuY29mZmVlXzMpDQpgYGANCg0KIyMjIDnri6jqs4QuIG91dGxpZXIg7KCc6rGw66W8IOychO2VtCAxOTk364WE64+EIOydtOyDgSDrjbDsnbTthLDrp4wg7KCA7J6lDQpgYGB7cn0NCnN0YXJ0X2luZGV4IDwtIHdoaWNoKGNvbG5hbWVzKHZhci5jb2ZmZWVfMyk9PTE5OTcpDQojd2hpY2goKSDtlajsiJjripQgVHJ1ZSDqsJLsnbQg7J6I64qUIOychOy5mOulvCDslYzroKTspIwuIOyYiOulvCDrk6TslrQgMTk5N+qwkuydhCDssrTtgaztlojsnYQg65WMIOuCmOyYpOuKlCDqsJLsnYAg7ZW064u57Jew64+E6rCAIOyLnOyeke2VnCDtm4Qg66qH67KI7Ke4IGluZGV46rCS7J2EIOqwluuKlOyngOulvCDslYzroKTspIwNCmVuZF9pbmRleCA8LSB3aGljaC5tYXgoY29sbmFtZXModmFyLmNvZmZlZV8zKSkNCiN3aGljaC5tYXgoY29sbmFtZXMoOOuyiOydmCDrpqzthLTqsJIpKQ0KIyM467KI66as7YS06rCS7J2YIOy1nOuMgOqwkuydhCDrs7Tsl6zspIwNCiM467KI66as7YS06rCSIDwtIDjrsojrpqzthLTqsJJbLGMoYTpiKV0gIyBh67aA7YSwIGLquYzsp4Drp4wg64uk7IucIHRhYmxl66GcIO2OuOynkeOFgg0KdmFyLmNvZmZlZV8zIDwtIHZhci5jb2ZmZWVfM1ssYyhzdGFydF9pbmRleDplbmRfaW5kZXgpXQ0KaGVhZCh2YXIuY29mZmVlXzMpDQpgYGANCg0KIyMjIDEw64uo6rOELiDtj5Dsl4Xqs7wg7Jq07JiB7ZWY64qUIOyDteydmCDruYTsnKgNCmBgYHtyfQ0KI3Byb3A567KI66as7YS06rCSIDwtIHByb3AudGFibGUoOeuyiCwgbWFyZ2luPTIpDQp2YXIuY29mZmVlXzQgPC1wcm9wLnRhYmxlKHZhci5jb2ZmZWVfMyxtYXJnaW49MikNCmBgYA0KDQojIyMxMeuLqOqzhC4g7LCo7Yq466GcIO2RnO2YhO2VoCDrp4jsp4Drp4kg642w7J207YSw7ZSE66CI7J6EIOyDneyEsQ0KYGBge3J9DQpuZXcuY29mZmVlPC1kYXRhLmZyYW1lKGNvbG5hbWVzKHZhci5jb2ZmZWVfMyksIHZhci5jb2ZmZWVfM1sxLF0sdmFyLmNvZmZlZV8zWzIsXSwgdmFyLmNvZmZlZV80WzEsXSwgdmFyLmNvZmZlZV80WzIsXSkNCmBgYA0KDQojIyMxMuuLqOqzhC4g7IOI66Gc7Jq0IOuNsOydtO2EsCDtlITroIjsnoTsl5Ag6rCA64+F7ISxIOydtOyTtCDsnbTrpoQg67aA7JesDQpgYGB7cn0NCmNvbG5hbWVzKG5ldy5jb2ZmZWUpPC1jKCJZZWFyIiwgIk9wZW4iLCAiQ2xvc2UiLCAi6rCc7JeF67mE7JyoIiwgIu2PkOyXheu5hOycqCIpDQpgYGANCg0KYGBge3J9DQpnZ3Bsb3QobmV3LmNvZmZlZSxhZXMoeCA8LSBmYWN0b3IoWWVhciksIHkgPC0gQ2xvc2UsZ3JvdXA9MSkpKw0KICBnZW9tX2xpbmUoY29sb3I9J3N0ZWVsYmx1ZTEnLHNpemU9MSkrDQogIGdlb21fcG9pbnQoY29sb3I9J3N0ZWVsYmx1ZScsc2l6ZT0zKSsNCiAgZ2VvbV9saW5lKGFlcyh5PU9wZW4pLGNvbG9yPSd0b21hdG8yJyxzaXplPTEpKw0KICBnZW9tX3BvaW50KGFlcyh5PU9wZW4pLGNvbG9yPSdyZWQnLHNpemU9MSkrDQogIHRoZW1lX2J3KCkNCmBgYA0KDQo=