첫번째 R meetup 스크린캐스트

2011.12.19일 R meetup 행사를 회사 카페에서 진행을 했었다. 약 20명 정도의 분들이 오셔서 아기자기 하게 모임을 가졌고, 첫번째 세션으로 cran.nexr.com 을 운영하면서 나온 아파치 로그를 분석하는 방법과 그 결과물을 공유 했었고, 나머지 15분 동안 KoNLP 패키지 소개를 했었다.

LA R User group에서 했던 meetup 행사 동영상을 보면서 상당히 스크린캐스트가 재미 있다는 생각을 해보게 되서 직접 만들어 보게 되었고, 재미가 붙어서 앞으로 몇 개정도 더 만들지 않을까 한다.

 

첫 번째로 아파치 로그 분석 예제에 대한 동영상이다(글자가 잘 안보이면 동영상 해상도를 높여서 시청하시기 바란다).

 

아래는 위 동영상 코드이다.

setwd("C:/rcran")
accessLog <- read.table(file=bzfile("full_log_20111124_20111219.txt.bz2"), 
                        sep=" ")


library(stringr)
pattern <- ".+contrib.+/(.+) HTTP/1.0"
packages <- str_match(accessLog[,"V6"], pattern)[,2]
clenedPkg <- packages[!is.na(packages)]


numofwin <- length(grep(".+\\.zip",clenedPkg))
numofmac <- length(grep(".+\\.tgz",clenedPkg))
numofsrc <- length(grep(".+\\.tar\\.gz",clenedPkg))

numof <- c(numofwin, numofmac,numofsrc )
names(numof) <- c("Windows", "Mac", "Etc")
barplot(numof/sum(numof) * 100, xlab="OS", ylab="Percentages", col=rainbow(3), ylim=c(0,100))
title("Korea User OS Distribution")


pkgNames <- str_match(clenedPkg, "(.+)_.+")[,2]

library(plyr)
library(lattice)
pkgcount <- count(data.frame(pkgname=pkgNames), vars="pkgname")
pkgcount <- pkgcount[!is.na(pkgcount$pkgname),]
orderedPkgCount <- pkgcount[order(pkgcount$freq, decreasing=T),]
orderedPkgCount$pkgname <- factor(orderedPkgCount$pkgname, 
                                  levels=orderedPkgCount$pkgname[order(orderedPkgCount$freq, decreasing=T)])

barchart(freq~pkgname, data=orderedPkgCount[1:20,], ylab="Freq", xlab="pkg names",
         scales = list(x = list(rot = 45, col="blue", cex=1.2)),col=rainbow(20), main="Top 20 packages")

 

두번째 동영상은 몇가지 예제와 더불어 KoNLP를 소개한 동영상이다.

 

역시 코드 첨부한다.

setwd("C:/work/meetup")
library(KoNLP)
library(RColorBrewer)
library(wordcloud)


f <- file("광장_최인훈.txt", blocking=F)
txtLines <- readLines(f)
nouns <- sapply(txtLines, extractNoun, USE.NAMES=F)
close(f)

wordcount <- table(unlist(nouns))
pal <- brewer.pal(12,"Set3")
pal <- pal[-c(1:2)]
wordcloud(names(wordcount),freq=wordcount,scale=c(6,0.3),min.freq=25,
          random.order=T,rot.per=.1,colors=pal)

위 결과로 나오는 워드클라우드는 아래와 같다.

 

image

 

앞으로 다양한 분들이 더 재밋는 주제로 meetup을 만들어 주길 바란다.

CC BY-NC 4.0 첫번째 R meetup 스크린캐스트 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.