我有一个类似的问题(创建一个"sessionID"基于"userID"和"timeStamp"的差异)创建一个'会话ID'; 虽然我的规格略有不同.也许这个解决方案在这篇文章中仍然很明显,但我无法将其应用到我的需求中 - 指出原始解决方案如何满足我的问题将是等效的.
我data.table看起来像这样(下面有输入):
unique_visitor_id datetime
100 2016-07-25 15:43:02
100 2016-08-15 15:35:16
101 2016-08-01 21:24:46
101 2016-08-13 05:32:27
101 2016-08-13 05:33:01
101 2016-08-13 05:33:37
101 2016-08-13 05:34:04
101 2016-08-13 05:37:42
101 2016-08-13 05:38:20
102 2016-09-15 17:28:00
102 2016-09-15 17:31:04
103 2016-07-18 21:19:07
Run Code Online (Sandbox Code Playgroud)
NB: datetime被转换为lubridatevia中的日期对象ymd_hms(datetime)
我想要的是一个标识会话的新变量,它是一个简单的整数序列(不需要像原始问题那样包含visitorID) - 会话由访问者定义,只要记录<= 30m并在同一天内.因此,例如,前两行将是两个不同的会话:虽然它是相同的访问者,但时间差异> 30米.
上述数据的所需输出为:
unique_visitor_id datetime session_id
100 2016-07-25 15:43:02 1
100 2016-08-15 15:35:16 2
101 2016-08-01 21:24:46 3
101 2016-08-13 05:32:27 4
101 2016-08-13 …Run Code Online (Sandbox Code Playgroud) 复制我在印刷媒体中看到的可视化ggplot2
背景:
我一直在寻求使数据可视化更吸引人/特别是针对非数据人,这是我与之共事的大多数人(营销商,管理层等利益相关者)-我注意到,当可视化看起来像ggplot2他们通常以学术出版质量(标准美学)为前提,即他们无法理解并且不费吹灰之力,一开始就破坏了可视化的全部目的。但是,当它看起来更具图形性时(例如您可能会在网站或营销材料上看到的东西),他们通常会集中精力并尝试理解可视化效果。通常,我们最终会遇到来自这些类型的可视化的最有趣的讨论,因此这是我的最终目标。
这是我在一些按地理区域划分的网络流量的设备营销小册子上看到的,尽管实际上有点忙碌和不清楚,但它比我在标准中创建的类似堆积条形图更好地产生了共鸣-我丝毫没有知道如何在其中复制类似内容ggplot2,任何尝试将不胜感激!这是在中使用的一些示例整洁数据data.table:
structure(list(country = c("Argentina", "Argentina", "Argentina",
"Brazil", "Brazil", "Brazil", "Canada",
"Canada", "Canada", "China", "China",
"China", "Japan", "Japan", "Japan", "Spain",
"Spain", "Spain", "UK", "UK", "UK", "USA",
"USA", "USA"),
device_type = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L, 1L, 2L, 3L, 1L, 2L,
3L, 1L, 2L, 3L, 1L, 2L, 3L,
1L, 2L, 3L),
class = "factor",
.Label = c("desktop",
"mobile",
"multi")),
proportion = c(0.37, 0.22, …Run Code Online (Sandbox Code Playgroud) 代表性样本数据(清单清单):
l <- list(structure(list(a = -1.54676469632688, b = "s", c = "T",
d = structure(list(id = 5L, label = "Utah", link = "Asia/Anadyr",
score = -0.21104594634643), .Names = c("id", "label",
"link", "score")), e = 49.1279871269422), .Names = c("a",
"b", "c", "d", "e")), structure(list(a = -0.934821052832427,
b = "k", c = "T", d = list(structure(list(id = 8L, label = "South Carolina",
link = "Pacific/Wallis", score = 0.526540892113734, externalId = -6.74354377676955), .Names = c("id",
"label", "link", "score", "externalId")), structure(list(
id = 9L, …Run Code Online (Sandbox Code Playgroud)