R语言中用pivot_wider按visitlink分组统计path出现次数
解决分组内Path出现次数的统计问题
你当前的代码返回0或1,是因为values_fn = ~1的作用是给每个匹配到的path赋值1,不管出现多少次。要统计分组内的出现次数,需要修改values_fn来计数,或者先分组计数再转宽格式,以下是两种可行方案:
方案1:直接修改pivot_wider的values_fn
使用length作为统计函数,它会计算每个path在对应visitlink分组中的出现次数:
library(tidyr) df2 <- pivot_wider(df, names_from = path, values_from = path, values_fn = length, # 替换为计数函数 values_fill = 0)
方案2:先分组计数再转宽(更直观)
先通过count函数统计每个visitlink和path组合的出现次数,再转为宽格式:
library(tidyr) library(dplyr) df2 <- df %>% count(visitlink, path) %>% pivot_wider(names_from = path, values_from = n, values_fill = 0)
两种方案运行后,都会得到符合预期的结果:
- visitlink为
715296时,3_0_1_0的统计值为2 - visitlink为
1214080时,0_0_1_0的统计值为2
内容的提问来源于stack exchange,提问作者ltong
相关产品推荐
相关产品推荐

