读取位置信息并对位置信息初步处理:
library(lawsonLoc) loc <- readLoc(system.file('extdata', 'location.csv', package = 'lawsonLoc')) #该数据存储在lawsonLoc中 head(loc) #原始位置信息为V3(经度),V4(纬度)
由于重复采样、降低金纬度精度等原因,原始数据存在大量的冗余信息,需要删除这部分数据,降低计算负担
loc1 <- handleLoc(loc) head(loc1)
findTwoPlaces
中dis_thres
参数:用户经常出没的两个地点之间的最小距离,数值单位为km
设置dis_thres
的目的是为了判断顾客的家庭住址和办公地址,如果不设置该参数可能出现的问题是:用户最经常出没的两个地方很近,比如公司和吃饭地点
twoplaces <- findTwoPlaces(loc1, dis_thres = 3) #dis_thres设为3km head(twoplaces) #确定办公地点,无法判断是否是住宅或办公地点时返回NA homeOffice <- detectOffice(twoplaces) head(homeOffice)
该函数根据百度地图API获取具体地址信息,所以 执行该函数是必须保证良好的网络环境!
getAddress(121.5385, 31.22104) #函数返回列表,包括详细地址、省份、市区、街道四个部分 twoplaces$address <- apply(twoplaces[, list(lon, lat)], 1, function(x){getAddress(x[1], x[2])$detail_address}) head(twoplaces)
参数:
id1
:会员id,注意lawson后台数据中会员id有两种形式,一种为13位数字,记作X
,例如1900000002123,另外一种由前面一种计算得到记作x
,计算方法是x=floor((X-19e11)/10)
,前例中计算得到为212loc
:地理位置数据,为了保证路径的光滑,地理数据尽可能完整,所以使用readLoc
读取的原始数据注意:
输出文件为html文件,文件名格式为path[id].csv
create_pathPlot(id1 = 219, loc = loc)
你可以在当前工作目录下找到path219.html的文件,即为结果。结果如下图所示:
参数:
ids
:会员id向量loc
:地理位置数据,为了保证路径的光滑,地理数据尽可能完整,所以使用readLoc
读取的原始数据address
:用户住宅、办公地点数据,有detectOffice
得到suffix
:添加后缀名,如果要生成多个轨迹图,添加不同的后缀能够避免文件被覆盖注意:
create_pathPlots(ids = c(219, 884, 1207), loc = loc, address = homeOffice, suffix = 'a')
你可以在当前工作目录下找到pathPlots_a.html的文件,即为结果。结果如下图所示:
上图中下方有一个输入框select path (1~3)
,表明有效用户数有3个,可以在输入框内输入1~3的数字。输入后点击submit按键,展现对应顾客的轨迹图,并且在member id
框中显示该顾客的ID。
每次只能展现一个用户的至多5条路径,并且将用户的家庭住址和办公地点标出。
shops <- readShop(filepath = system.file('extdata', 't_shop.csv', package = 'lawsonLoc')) shops <- shops[area %like% '江阴'] #仅仅显示江阴的店铺地址 create_heatMap(loc = homeOffice, shop = shops)
你可以在当前工作目录下找到density.html的文件,即为结果。结果如下图所示:
图中最下端有六个按键,分别对应:打开住宅热力图、关闭住宅热力图、打开工作地址热力图、关闭工作地址热力图、显示店铺地址、关闭店铺地址
本包中还有两个html文件,分别演示了热力图和轨迹图:heatmap.html和pathPlots.html
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.