[첫화면으로]GyparkWikiStatistics/월별방문자

마지막으로 [b]

이전 : /사전준비
다음 :
위 : GyparkWikiStatistics
목차 : GyparkWikiStatistics/목차

/월별방문자

관련 링크 : [블로그 통계학: 블로거를 위한 통계 매뉴얼]

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

결과는

Upload:visit_200211.png
2002년 11월

검은색이 일별 visit, 빨간색은 이동평균법, 초록색은 국소 가중 회귀 산점법1이다. 아래에 2002년 11월 이후의 그래프들을 올리기는 했는데, 전혀 서로간에 관련을 찾을 수 없는 불규칙한 그림으로만 보인다. :-) 간혹가다 왕대박을 내는 날이 있는가 하면 처절하리만큼 방문객이 없는 날도 있긴 한데 이유는 모르겠다.

나머지...

이름:  
Homepage:
내용:  


주인장분류
각주:
1. 도대체 무슨 뜻인지... -.-;;

마지막 편집일: 2012-2-11 12:25 am (변경사항 [d])
894 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기