dplyr表重建/数据争论

时间:2018-02-15 05:19:09

标签: r dplyr tidyr data-cleaning

我正在尝试创建一个定义true和false搜索的变量。原始数据集位于此处:https://github.com/wikimedia-research/Discovery-Hiring-Analyst-2016/blob/master/events_log.csv.gz

基本场景是,有些变量定义了用户(由ID-或原始数据集中的session_id或uuid定义)执行真实搜索与错误搜索的次数,以便访问始终以搜索,但搜索后不必访问。如果你检查原始数据集,还有一个时间变量,时间戳,我不知道如何复制,但我相信这将是有用的。

原始结构的粗略版本:

ID  Action   Time
a   search    1
a   visit     2
a   search    3
a   visit     4
b   visit     2
b   visit     3
b   search    1
c   search    5
c   search    6
c   search    7
c   visit     8
d   search    3
d   search    4

我正在尝试创建一个定义true和false搜索的变量。 上述数据预计将按Action = search进行排序,例如采用以下格式:

我正试图制作的结构:

ID  Action ClickThrough
a   search    T
a   search    T
b   search    T
c   search    F
c   search    F
c   search    T
d   search    F
d   search    F

1 个答案:

答案 0 :(得分:1)

这会使用dplyr

生成预期输出
library(dplyr)
df1 %>%
  arrange(ID,Time) %>%
  group_by(ID) %>%
  mutate(ClickThrough = c(as.logical(diff(Action=="visit")),FALSE)) %>%
  filter(Action=="search")

# # A tibble: 8 x 4
# # Groups:   ID [4]
#      ID Action  Time ClickThrough
#   <chr>  <chr> <int>        <lgl>
# 1     a search     1         TRUE
# 2     a search     3         TRUE
# 3     b search     1         TRUE
# 4     c search     5        FALSE
# 5     c search     6        FALSE
# 6     c search     7         TRUE
# 7     d search     3        FALSE
# 8     d search     4        FALSE