繁体   English   中英

R中按用户ID分组后可以汇总变量组合吗?

[英]Can I summarise variable combinations after grouping by user ID in R?

正如标题所暗示的那样,我正在努力寻找一种方法来很好地分析有多少用户(由用户 ID 标识)仅使用一个设备(设备)或多个,如果是,是哪种组合。

我设法制作了包含用户 ID 和设备信息、总频率以及用户是否多次访问平台(如果他们的用户 ID 出现多次)(多会话)的列。

每次用户使用他们的设备登录时,都会保存此信息,因此有一些人仅使用 PC 登录 20 次的记录,但有些人随着时间的推移使用不同的设备登录。

我正在寻找的是一个 output,它不一定需要个人用户 ID,而是需要多少人使用什么设备组合。 (只是一台 PC,只是一台平板电脑,只是一部手机,有多少人使用 PC 和平板电脑,PC 和手机,或者平板电脑和手机,或者三者同时使用)。

目标是制作一个漂亮的图表,显示有多少人使用多种设备以及他们随后选择哪种类型。

圣杯将是第二次分析,看看在 Win 和 Mac 用户组(操作系统列)之间使用辅助设备的人数是否存在差异,但这不是必须的。

我尝试了典型的

library(dplyr)
SISessions1 %>% 
  group_by(StudentID)... 

以及 packages janitor, vtree, CGPfunctions但没能得到我想要的。

这是我的数据示例:

structure(list(StudentID = c("CE52E2D2CC3E7A8624F7EF6E9EF4BAC736B5D7A77131F5773F2DAD20A98C49C9C710D6988017CEC3714", 
"2388CDEB82965E403D7EAE181E9A711D58CEA6F6775F60EDDB73791D5076B87F5C477BF01256E20DE8FF0", 
"10F5DE1E0A95667B811F9A6CF2D43415AE580DC7F41289CBCEE88B2FBEC2983CA8F29A2048A446CFFF8EE", 
"968DE1D2238FEE04B54DC705059AC49791D77D21245DBEB61F0602AB052B53928AE10F763FFD3F0A73CA3", 
"FB7BEECA8C097C34D25C65A00943681432FF1ECFF1FA840320DCC6CC77CFCF119898B259FAFF2F2593A3B", 
"3C3FC512008B7D33E04B51551426738F07AD1430507CA530657EEF27650A05DCE624A10AD9451570F3020", 
"3C3FC512008B7D33E04B51551426738F07AD1430507CA530657EEF27650A05DCE624A10AD9451570F3020", 
"14626EA6256FEFBB0EA89688C87D3289A73E80D724AD760D13BED298CAEA4744BED66D37365F13FE36DC5"
), Browser = c("Chrome", "InternetExplorer", "Safari Mac", "InternetExplorer", 
"InternetExplorer", "Chrome", "Chrome", "Chrome"), Platform = c("Win7", 
"Win7", "Mac10", "Win7", "Win7", "Android", "Linux", "Tablet PC"
), OS = c("Win", "Win", "Mac", "Win", "Win", "Android", "Linux", 
"Tablet PC"), Device = c("PC", "PC", "PC", "PC", "PC", "Mobile", 
"Linux", "Tablet"), noofsessions = c(1L, 8L, 9L, 15L, 5L, 3L, 
3L, 22L), multisession = c(FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE)), row.names = c(NA, -8L), class = c("tbl_df", "tbl", 
"data.frame")) 

所以看起来您正在寻找的模式是带有折叠参数的 summarise() + paste0() ,然后您可以计算我所说的“类别”以获得属于每个类别的用户数量。

your_data %>%
    group_by(StudentId)%>%
    summarise(category = paste0(Device, collapse = ", "))%>%
    count(category)

通过将 OS 添加到 group_by() 然后使用 OS 和类别等进行计数,将此分析扩展到 OS 应该有点简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM