관련 링크 : [블로그 통계학: 블로거를 위한 통계 매뉴얼]
R에서 도움말을 보려면
help()라고 하면 된다. 자세한 토픽은 help(topic)과 같은 식으로 해 주면 된다.
R 매뉴얼에서 "from file"을 찾아서 데이타를 파일로부터 읽는 법을 살펴 보니 다음과 같다.
March <- scan("파일이름")
R에서 help(png)를 해 보니 그림을 png 파일로 넣는 법을 알 수 있었다.
png(filename = "그림파일.png", width=480, height=480, pointsize = 12, bg = "white") plot(주저리주저리)
이제, /사전준비에서 받아온 usage_*html 파일들로부터 날짜별 visit수를 뽑아내어 데이타로 저장하는 스크립트를 만든다.
#!/usr/bin/perl $file = $ARGV[0]; open (OUTR, ">r_visit.r"); foreach (glob("usage_*.html")) { &get_visits_from_file($_); } close (OUTR); exit 0; sub get_visits_from_file { ($file) = @_; $data = ""; @days = (); local $/ = undef; open(IN, "<$file") or die "can't open $file\n"; $data = <IN>; close(IN); if ($data =~ m|.*>일별 통계 .*?KBytes.*?<TH HEIGHT=4></TH></TR>\n(.*?)<TR><TH HEIGHT=4></TH></TR>\n</TABLE>.*$|s) { $data = $1 } while ($data =~ m|<TR>(.*?)</TR>|sg) { push (@days, $1); } if ($file =~ /(\d+)/) { $outfile = "visit_$1.in"; $pngfile = "visit_$1.png"; } open(OUT, ">$outfile") or die "can't open $outfile\n"; foreach $day (@days) { $day =~ s/<.*?>//g; @lines = split(/\n/, $day); ($date, $hits, $hits_p, $files, $files_p, $pages, $pages_p, $visits, $visits_p, $sites, $sites_p, $kbytes, $kbytes_p) = @lines; printf OUT "%4d\n", $visits; } close(OUT); print OUTR <<EOF; png(filename="$pngfile",width=480,height=480,pointsize=12,bg="white") data <- scan("$outfile"); plot(data,type="l") lines(filter(data,rep(1,7)/7),col=2) lines(lowess(data),col=3) EOF }
위 스크립트를 실행하면, 각각의 usage_년월.html 파일에서 일별 통계 데이타 부분을 찾아내어 그 중에 visits 항목만 visit_년월.in 파일에 저장을 한다. 또 r_visit.r 이라는 파일에다가 각 월별로 png 파일에다가 귤님 블로그에 있는 그래프를 저장하는 스크립트를 작성해 준다. 이 r_visit.r 은 다음과 같이 생겼다.
png(filename="visit_200210.png",width=480,height=480,pointsize=12,bg="white") # 각 월별로 png 파일 지정 data <- scan("visit_200210.in"); # 월별 방문객 수를 파일로부터 읽고 plot(data,type="l") # 그림을 그린 후 lines(filter(data,rep(1,7)/7),col=2) # 이동평균법으로 다시 그리고 lines(lowess(data),col=3) # 국소 가중 회귀 산점 평활법으로 다시 그림 png(filename="visit_200211.png",width=480,height=480,pointsize=12,bg="white") # 다음 달. 이하 반복...
이제 R 을 실행시키는 일만 남았다.
R --save < r_visit.r
검은색이 일별 visit, 빨간색은 이동평균법, 초록색은 국소 가중 회귀 산점법1이다. 아래에 2002년 11월 이후의 그래프들을 올리기는 했는데, 전혀 서로간에 관련을 찾을 수 없는 불규칙한 그림으로만 보인다. :-) 간혹가다 왕대박을 내는 날이 있는가 하면 처절하리만큼 방문객이 없는 날도 있긴 한데 이유는 모르겠다.