首页 > 解决方案 > R,如何在按组拆分的值之后和/或之间保留行?

问题描述

抱歉,由于某种原因,我的 dput 函数给出了无意义的输出。我有一个带有用户 ID 和事件的 df。我正在尝试从事件 $identify 开始为每个用户 ID 构建路径。如何只保留每个 ID 的 $identify 之后的前 5 行?输出应该包含每个 ID 加上接下来的 5 个事件。数据框已按用户 ID 和日期排序,因此无需这样做,只需保持顺序即可。

样本输出

ID 约会时间 事件
ID1232 9:00 AM $识别
ID1232 上午 9:01 下拉式菜单

对每个 ID 重复

testset <- wrapr::build_frame(
   "user_id"                               , "datetime"        , "event"                                   |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:10 AM", "Page View"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:10 AM", "Dropdown Menu - Open"                    |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:10 AM", "Dropdown Menu - Settings"                |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:10 AM", "Dropdown Menu - View Profile"            |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:10 AM", "Profile - Edit"                          |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:10 AM", "Profile - Close"                         |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:10 AM", "Dropdown Menu - Directory"               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:10 AM", "Page View"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:11 AM", "Directory - Close"                       |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:12 AM", "2D - Directory Icon"                     |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:12 AM", "Page View"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:13 AM", "Directory - Close"                       |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:13 AM", "Dropdown Menu - Open"                    |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:13 AM", "Dropdown Menu - Settings"                |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:13 AM", "Dropdown Menu - View Profile"            |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:13 AM", "Profile - Edit"                          |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:14 AM", "Profile' - Save"                         |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:14 AM", "Dropdown Menu - Help"                    |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:14 AM", "Page View"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:14 AM", "Help - Close"                            |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 10:27 AM", "Chat - Search User"                      |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 11:47 AM", "Dropdown Menu - Open"                    |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 11:55 AM", "Dropdown Menu - Agenda"                  |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 11:55 AM", "Page View"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:43 AM" , "$identify"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:43 AM" , "Page View"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:43 AM" , "Onboarding - Next"                       |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:44 AM" , "Dimension Choice - Choice Made"          |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:44 AM" , "Page View"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:46 AM" , "Dimension Choice - Choice Made"          |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:46 AM" , "Dropdown Menu - Open"                    |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:46 AM" , "Dropdown Menu - Settings"                |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:46 AM" , "Dropdown Menu - Sound Off"               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:47 AM" , "Chat - Search User"                      |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:47 AM" , "Chat - Invite a Person to Groupchat"     |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:47 AM" , "Chat - Enter Message"                    |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:50 AM" , "Page View"                               |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:50 AM" , "Dimension Choice - Choice Made"          |
     "0106d45f-deda-4205-894a-006c8afa5abc", "9/21/21 9:50 AM" , "Chat - Join a Videochat"                 |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:32 PM" , "$identify"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:32 PM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:32 PM" , "Onboarding - Next"                       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:32 PM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:32 PM" , "2D - Agenda Icon"                        |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:32 PM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:36 PM" , "Agenda - Close"                          |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:36 PM" , "2D - Directory Icon"                     |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:36 PM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:36 PM" , "Profile - View"                          |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:37 PM" , "Profile - Close"                         |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:37 PM" , "Directory - Next page participant"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:37 PM" , "Directory - Filter"                      |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/21/21 8:38 PM" , "Directory - Close"                       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:00 AM", "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:00 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:01 AM", "Personal Agenda - Join The Session"      |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:01 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:01 AM", "Presentation - Open Modal"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:01 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:02 AM", "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:27 AM", "Presentation - Close Modal"              |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:27 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:27 AM", "Dropdown Menu - Open"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:27 AM", "Dropdown Menu - My Agenda"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:27 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:30 AM", "Presentation - Open Modal"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:30 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:30 AM", "Personal Agenda - Join The Session"      |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:30 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:31 AM", "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:58 AM", "Presentation - Close Modal"              |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:58 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:58 AM", "Dropdown Menu - Open"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:58 AM", "Dropdown Menu - My Agenda"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:58 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:58 AM", "Personal Agenda - Remove from my Agenda" |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 10:58 AM", "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 2:30 PM" , "Dropdown Menu - Open"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 2:30 PM" , "Dropdown Menu - My Agenda"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 2:30 PM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 2:30 PM" , "Dropdown Menu - Open"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 2:30 PM" , "Dropdown Menu - Agenda"                  |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 2:30 PM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 2:30 PM" , "Agenda - Past Presentations"             |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 2:30 PM" , "Agenda - Close"                          |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 7:48 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:00 AM" , "Login - Login Button"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:00 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:01 AM" , "2D - Agenda Icon"                        |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:01 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:39 AM" , "Agenda - Close"                          |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:39 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:39 AM" , "2D - Agenda Icon"                        |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:49 AM" , "Presentation - Open Modal"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:49 AM" , "Agenda - Join the Session"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:49 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:49 AM" , "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:50 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:50 AM" , "Presentation - Close Modal"              |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:51 AM" , "2D - Agenda Icon"                        |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:51 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:51 AM" , "Agenda - Join the Session"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:51 AM" , "Presentation - Open Modal"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:51 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:51 AM" , "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:51 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:51 AM" , "Presentation - Close Modal"              |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:52 AM" , "$identify"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:52 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:52 AM" , "3D - Agenda Icon"                        |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:52 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:52 AM" , "Agenda - Join the Session"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:52 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:52 AM" , "Presentation - Open Modal"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:52 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:53 AM" , "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:56 AM" , "Presentation - Close Modal"              |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:56 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:56 AM" , "Dropdown Menu - Open"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:57 AM" , "Dropdown Menu - My Agenda"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:57 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:57 AM" , "Dropdown Menu - Open"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:57 AM" , "Dropdown Menu - Agenda"                  |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:57 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:57 AM" , "Agenda - Add to my Agenda"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Agenda - Close"                          |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Dropdown Menu - Open"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Dropdown Menu - My Agenda"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Dropdown Menu - Open"                    |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Dropdown Menu - Agenda"                  |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Agenda - Add to my Agenda"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Agenda - Close"                          |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Rooms Nav - Open"                        |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "3D - Join a Session Icon"                |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Presentation - Open Modal"               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:58 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 8:59 AM" , "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:00 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:00 AM" , "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:02 AM" , "Personal Agenda - Join The Session"      |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:02 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:02 AM" , "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:11 AM" , "Profile - View"                          |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:12 AM" , "Profile - Close"                         |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:12 AM" , "Presentation - Watch Presentation"       |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:16 AM" , "Page View"                               |
     "01370990-cc35-4be4-8927-39e83b7f1e76", "9/22/21 9:16 AM" , "Presentation - Close Modal"              )

我将如何更改下面的代码以开始

test2<-testset%>%
  arrange(user_id, datetime)%>%
  group_by(user_id)%>%
  mutate(group = cumsum(event == "Welcome - Confirm Emails")) %>%
  group_by(user_id, group) %>%
  filter(event[1] == "Welcome - Confirm Emails") %>%
  summarise(touches = paste(event, collapse = "_"),
            first_touch = min(datetime))%>%
  slice(1:(which(event == "$identify")))%>%
  ungroup()

这没有用。在使用初始答案运行代码后,我意识到我需要将其标识为最后一个事件,然后是“欢迎 - 确认电子邮件”

标签: r

解决方案


这是一个简单的分组操作,但有一个转折:至少一个user_id有多个$identify行,在这种情况下,您需要检查两者。

碱基R

testset$group <- ave(testset$event, testset$user_id,
                     FUN = function(z) cumsum(z == "$identify"))
keep <- ave(testset$event, testset[,c("user_id", "group")],
            FUN = function(z) {
              if (length(z) && z[1] == "$identify") (seq_along(z) <= 5) else FALSE
            }) == "TRUE"
testset[keep,]
#                                  user_id        datetime                          event group
# 25  0106d45f-deda-4205-894a-006c8afa5abc 9/21/21 9:43 AM                      $identify     1
# 26  0106d45f-deda-4205-894a-006c8afa5abc 9/21/21 9:43 AM                      Page View     1
# 27  0106d45f-deda-4205-894a-006c8afa5abc 9/21/21 9:43 AM              Onboarding - Next     1
# 28  0106d45f-deda-4205-894a-006c8afa5abc 9/21/21 9:44 AM Dimension Choice - Choice Made     1
# 29  0106d45f-deda-4205-894a-006c8afa5abc 9/21/21 9:44 AM                      Page View     1
# 40  01370990-cc35-4be4-8927-39e83b7f1e76 9/21/21 8:32 PM                      $identify     1
# 41  01370990-cc35-4be4-8927-39e83b7f1e76 9/21/21 8:32 PM                      Page View     1
# 42  01370990-cc35-4be4-8927-39e83b7f1e76 9/21/21 8:32 PM              Onboarding - Next     1
# 43  01370990-cc35-4be4-8927-39e83b7f1e76 9/21/21 8:32 PM                      Page View     1
# 44  01370990-cc35-4be4-8927-39e83b7f1e76 9/21/21 8:32 PM               2D - Agenda Icon     1
# 108 01370990-cc35-4be4-8927-39e83b7f1e76 9/22/21 8:52 AM                      $identify     2
# 109 01370990-cc35-4be4-8927-39e83b7f1e76 9/22/21 8:52 AM                      Page View     2
# 110 01370990-cc35-4be4-8927-39e83b7f1e76 9/22/21 8:52 AM               3D - Agenda Icon     2
# 111 01370990-cc35-4be4-8927-39e83b7f1e76 9/22/21 8:52 AM                      Page View     2
# 112 01370990-cc35-4be4-8927-39e83b7f1e76 9/22/21 8:52 AM      Agenda - Join the Session     2

dplyr

与另一个答案类似,处理不同的多个实例$identify

library(dplyr)
testset %>%
  group_by(user_id) %>%
  mutate(group = cumsum(event == "$identify")) %>%
  group_by(user_id, group) %>%
  filter(event[1] == "$identify" & row_number() <= 5) %>%
  ungroup()

数据表

library(data.table)
testsetDT <- as.data.table(testset)
testsetDT[, group := cumsum(event == "$identify"), by = user_id
          ][, .SD[event[1] == "$identify" & seq_len(.N) <= 5,], by = .(user_id, group)
            ]

对于您的第二个需求(返回两个events 之间的行),鉴于您的数据不包含 ,很难完全测试"Welcome...",但我将"Page View"改用:

testset %>%
  group_by(user_id) %>%
  mutate(group = cumsum(event == "Page View")) %>%
  group_by(user_id, group) %>%
  filter(event[1] == "Page View" &
           "$identify" %in% event &
           (event == "$identify" | !cumany(event == "$identify"))) %>%
  ungroup()
# # A tibble: 5 x 4
#   user_id                              datetime         event                      group
#   <chr>                                <chr>            <chr>                      <int>
# 1 0106d45f-deda-4205-894a-006c8afa5abc 9/21/21 11:55 AM Page View                      5
# 2 0106d45f-deda-4205-894a-006c8afa5abc 9/21/21 9:43 AM  $identify                      5
# 3 01370990-cc35-4be4-8927-39e83b7f1e76 9/22/21 8:51 AM  Page View                     25
# 4 01370990-cc35-4be4-8927-39e83b7f1e76 9/22/21 8:51 AM  Presentation - Close Modal    25
# 5 01370990-cc35-4be4-8927-39e83b7f1e76 9/22/21 8:52 AM  $identify                     25

如果需要,类似的机制可用于基础 R 和data.table解决方案。


数据

testset <- structure(list(user_id = c("0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "0106d45f-deda-4205-894a-006c8afa5abc", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76", "01370990-cc35-4be4-8927-39e83b7f1e76"), datetime = c("9/21/21 10:10 AM", "9/21/21 10:10 AM", "9/21/21 10:10 AM", "9/21/21 10:10 AM", "9/21/21 10:10 AM", "9/21/21 10:10 AM", "9/21/21 10:10 AM", "9/21/21 10:10 AM", "9/21/21 10:11 AM", "9/21/21 10:12 AM", "9/21/21 10:12 AM", "9/21/21 10:13 AM", "9/21/21 10:13 AM", "9/21/21 10:13 AM", "9/21/21 10:13 AM", "9/21/21 10:13 AM", "9/21/21 10:14 AM", "9/21/21 10:14 AM", "9/21/21 10:14 AM", "9/21/21 10:14 AM", "9/21/21 10:27 AM", "9/21/21 11:47 AM", "9/21/21 11:55 AM", "9/21/21 11:55 AM", "9/21/21 9:43 AM", "9/21/21 9:43 AM", "9/21/21 9:43 AM", "9/21/21 9:44 AM", "9/21/21 9:44 AM", "9/21/21 9:46 AM", "9/21/21 9:46 AM", "9/21/21 9:46 AM", "9/21/21 9:46 AM", "9/21/21 9:47 AM", "9/21/21 9:47 AM", "9/21/21 9:47 AM", "9/21/21 9:50 AM", "9/21/21 9:50 AM", "9/21/21 9:50 AM", "9/21/21 8:32 PM", "9/21/21 8:32 PM", "9/21/21 8:32 PM", "9/21/21 8:32 PM", "9/21/21 8:32 PM", "9/21/21 8:32 PM", "9/21/21 8:36 PM", "9/21/21 8:36 PM", "9/21/21 8:36 PM", "9/21/21 8:36 PM", "9/21/21 8:37 PM", "9/21/21 8:37 PM", "9/21/21 8:37 PM", "9/21/21 8:38 PM", "9/22/21 10:00 AM", "9/22/21 10:00 AM", "9/22/21 10:01 AM", "9/22/21 10:01 AM", "9/22/21 10:01 AM", "9/22/21 10:01 AM", "9/22/21 10:02 AM", "9/22/21 10:27 AM", "9/22/21 10:27 AM", "9/22/21 10:27 AM", "9/22/21 10:27 AM", "9/22/21 10:27 AM", "9/22/21 10:30 AM", "9/22/21 10:30 AM", "9/22/21 10:30 AM", "9/22/21 10:30 AM", "9/22/21 10:31 AM", "9/22/21 10:58 AM", "9/22/21 10:58 AM", "9/22/21 10:58 AM", "9/22/21 10:58 AM", "9/22/21 10:58 AM", "9/22/21 10:58 AM", "9/22/21 10:58 AM", "9/22/21 2:30 PM", "9/22/21 2:30 PM", "9/22/21 2:30 PM", "9/22/21 2:30 PM", "9/22/21 2:30 PM", "9/22/21 2:30 PM", "9/22/21 2:30 PM", "9/22/21 2:30 PM", "9/22/21 7:48 AM", "9/22/21 8:00 AM", "9/22/21 8:00 AM", "9/22/21 8:01 AM", "9/22/21 8:01 AM", "9/22/21 8:39 AM", "9/22/21 8:39 AM", "9/22/21 8:39 AM", "9/22/21 8:49 AM", "9/22/21 8:49 AM", "9/22/21 8:49 AM", "9/22/21 8:49 AM", "9/22/21 8:50 AM", "9/22/21 8:50 AM", "9/22/21 8:51 AM", "9/22/21 8:51 AM", "9/22/21 8:51 AM", "9/22/21 8:51 AM", "9/22/21 8:51 AM", "9/22/21 8:51 AM", "9/22/21 8:51 AM", "9/22/21 8:51 AM", "9/22/21 8:52 AM", "9/22/21 8:52 AM", "9/22/21 8:52 AM", "9/22/21 8:52 AM", "9/22/21 8:52 AM", "9/22/21 8:52 AM", "9/22/21 8:52 AM", "9/22/21 8:52 AM", "9/22/21 8:53 AM", "9/22/21 8:56 AM", "9/22/21 8:56 AM", "9/22/21 8:56 AM", "9/22/21 8:57 AM", "9/22/21 8:57 AM", "9/22/21 8:57 AM", "9/22/21 8:57 AM", "9/22/21 8:57 AM", "9/22/21 8:57 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:58 AM", "9/22/21 8:59 AM", "9/22/21 9:00 AM", "9/22/21 9:00 AM", "9/22/21 9:02 AM", "9/22/21 9:02 AM", "9/22/21 9:02 AM", "9/22/21 9:11 AM", "9/22/21 9:12 AM", "9/22/21 9:12 AM", "9/22/21 9:16 AM", "9/22/21 9:16 AM"), event = c("Page View", "Dropdown Menu - Open", "Dropdown Menu - Settings", "Dropdown Menu - View Profile", "Profile - Edit", "Profile - Close", "Dropdown Menu - Directory", "Page View", "Directory - Close", "2D - Directory Icon", "Page View", "Directory - Close", "Dropdown Menu - Open", "Dropdown Menu - Settings", "Dropdown Menu - View Profile", "Profile - Edit", "Profile' - Save", "Dropdown Menu - Help", "Page View", "Help - Close", "Chat - Search User", "Dropdown Menu - Open", "Dropdown Menu - Agenda", "Page View", "$identify", "Page View", "Onboarding - Next", "Dimension Choice - Choice Made", "Page View", "Dimension Choice - Choice Made", "Dropdown Menu - Open", "Dropdown Menu - Settings", "Dropdown Menu - Sound Off", "Chat - Search User", "Chat - Invite a Person to Groupchat", "Chat - Enter Message", "Page View", "Dimension Choice - Choice Made", "Chat - Join a Videochat", "$identify", "Page View", "Onboarding - Next", "Page View", "2D - Agenda Icon", "Page View", "Agenda - Close", "2D - Directory Icon", "Page View", "Profile - View", "Profile - Close", "Directory - Next page participant", "Directory - Filter", "Directory - Close", "Presentation - Watch Presentation", "Page View", "Personal Agenda - Join The Session", "Page View", "Presentation - Open Modal", "Page View", "Presentation - Watch Presentation", "Presentation - Close Modal", "Page View", "Dropdown Menu - Open", "Dropdown Menu - My Agenda", "Page View", "Presentation - Open Modal", "Page View", "Personal Agenda - Join The Session", "Page View", "Presentation - Watch Presentation", "Presentation - Close Modal", "Page View", "Dropdown Menu - Open", "Dropdown Menu - My Agenda", "Page View", "Personal Agenda - Remove from my Agenda", "Page View", "Dropdown Menu - Open", "Dropdown Menu - My Agenda", "Page View", "Dropdown Menu - Open", "Dropdown Menu - Agenda", "Page View", "Agenda - Past Presentations", "Agenda - Close", "Page View", "Login - Login Button", "Page View", "2D - Agenda Icon", "Page View", "Agenda - Close", "Page View", "2D - Agenda Icon", "Presentation - Open Modal", "Agenda - Join the Session", "Page View", "Presentation - Watch Presentation", "Page View", "Presentation - Close Modal", "2D - Agenda Icon", "Page View", "Agenda - Join the Session", "Presentation - Open Modal", "Page View", "Presentation - Watch Presentation", "Page View", "Presentation - Close Modal", "$identify", "Page View", "3D - Agenda Icon", "Page View", "Agenda - Join the Session", "Page View", "Presentation - Open Modal", "Page View", "Presentation - Watch Presentation", "Presentation - Close Modal", "Page View", "Dropdown Menu - Open", "Dropdown Menu - My Agenda", "Page View", "Dropdown Menu - Open", "Dropdown Menu - Agenda", "Page View", "Agenda - Add to my Agenda", "Agenda - Close", "Dropdown Menu - Open", "Page View", "Dropdown Menu - My Agenda", "Page View", "Dropdown Menu - Open", "Dropdown Menu - Agenda", "Page View", "Agenda - Add to my Agenda", "Agenda - Close", "Rooms Nav - Open", "3D - Join a Session Icon", "Presentation - Open Modal", "Page View", "Presentation - Watch Presentation", "Page View", "Presentation - Watch Presentation", "Personal Agenda - Join The Session", "Page View", "Presentation - Watch Presentation", "Profile - View", "Profile - Close", "Presentation - Watch Presentation", "Page View", "Presentation - Close Modal")), row.names = c(NA, -150L), class = "data.frame")

推荐阅读