Más contenido relacionado
Similar a ログ解析入門withR InnovationEggNo3 (20)
ログ解析入門withR InnovationEggNo3
- 30. ログの取得と解析
Package: RODBC
RからODBC(Open Database Connectivity: RDBMSにアクセ
スするための共通インタフェース (API))を利用してDBにアクセス
http://cran.r-project.org/web/packages/RODBC/index.html
インストール&呼び出し
CRANからダウンロード
RStudioでインストール、呼び出し
if(!require(RODBC)){
install.packages(“RODBC”)
}
library(RODBC)
- 32. ログの取得と解析
RからODBC
#SQL実行
sqlQuery(conn, query)
queryの例:
query1 <- “select * from table”
#各IPアドレスからのアクセス数を取得
query2 <- “select ip_address as ip, count(*) as n from table”
#昨日までの1週間分のデータを取得
day_b0 <- Sys.Date() #今日
day_b8 <- day_b1-8 #8日前
query3 <- paste(“select * from table where time>=”, day_b1, “and time <”, day_b8)
#接続終了
close(conn)
- 39. (例)datasciencetoolkit.orgのAPIを利用してIPアドレスから経度・緯度を取得
IPtoXY <- function(x) {
URL_IP <-paste("http://www.datasciencetoolkit.org//ip2coordinates/",
x, sep = "")
api_return <- readLines(URL_IP, warn = F)
lon1 <- api_return[grep("longitude", api_return)]
lon <- gsub("[^[:digit:].]", "", lon1)
lat1 <- api_return[grep("latitude", api_return)]
lat <- gsub("[^[:digit:].]", "", lat1)
return(paste(lat, lon, sep = ":"))
}
ログの取得と解析
IP address
- 40. ログの取得と解析
IP address
(例)Google Map上に表示
map_ip <- function(id, ip) {
URL_IP <- data.frame(ip=paste("http://www.datasciencetoolkit.org//ip2coordinates/",
ip, sep = ""))
y <- unique(URL_IP)
api_returnx <- apply(y, 1, readLines, warn=F)
api_return <- unlist(api_returnx)
lon1 <- api_return[grep("longitude", api_return)]
lon <- gsub("[^[:digit:].]", "", lon1)
lat1 <- api_return[grep("latitude", api_return)]
lat <- gsub("[^[:digit:].]", "", lat1)
loc <- data.frame(id=id, lonlat=(paste(lat, lon, sep = ":")))
plot(gvisMap(loc, locationvar="lonlat", tipvar="id",
option=list(showTip=F,
enableScroll=T,
useMapTypeControl=T)))
return(data.frame(id, lat, lon))
}
- 46. ログの取得と解析
age >= 35.5age < 35.5
hour < 3 hour >= 3
repeat >= 2repeat < 2
傾向を見てみる
(例)何が購買に結び付いているのか
「dat」
会員ID
年齢
男女(男=1, 女=0)
訪問時間、曜日
etc
誰が(どんな層の会員が)
いつ(曜日、時間)
購入する傾向にあるのか
■購入
■非購入
- 47. ログの取得と解析
age >= 35.5age < 35.5
hour < 3 hour >= 3
repeat >= 2repeat < 2
傾向を見てみる
library(mvpart)
tree <- rpart(purchase~. data=dat)
plot(tree)
#これだけ
■購入
■非購入