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)
위 결과로 나오는 워드클라우드는 아래와 같다.
앞으로 다양한 분들이 더 재밋는 주제로 meetup을 만들어 주길 바란다.
첫번째 R meetup 스크린캐스트 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.