gpt4 book ai didi

r - 如何计算不同群体的共同值(value)?

转载 作者:行者123 更新时间:2023-12-04 14:38:09 25 4
gpt4 key购买 nike

我正在尝试使用 igraph 包创建用于创建网络图表的数据框。我有示例数据“mydata_data”,我想创建“expected_data”。

我可以轻松计算访问特定商店的客户数量,但如何计算去商店 x1 和商店 x2 等的常见客户集?

我有 500 多家商店,所以我不想手动创建列。用于可重现目的的示例数据如下:

mydata_data<-data.frame(
Customer_Name=c("A","A","C","D","D","B"),
Store_Name=c("x1","x2","x2","x2","x3","x1"))

expected_data<-data.frame(
Store_Name=c("x1","x2","x3","x1_x2","x2_x3","x1_x3"),
Customers_Visited=c(2,3,1,1,1,0))

最佳答案

另一种可能的解决方案来自 dplyr是为每个客户创建一个包含所有组合的列表,取消该列表的嵌套,计数并与具有所有组合的数据框合并,即

library(tidyverse)

df %>%
group_by(Customer_Name) %>%
summarise(combos = list(unique(c(unique(Store_Name), paste(unique(Store_Name), collapse = '_'))))) %>%
unnest() %>%
group_by(combos) %>%
count() %>%
right_join(data.frame(combos = c(unique(df$Store_Name), combn(unique(df$Store_Name), 2, paste, collapse = '_'))))

这使,

# A tibble: 6 x 2
# Groups: combos [?]
combos n
<chr> <int>
1 x1 2
2 x2 3
3 x3 1
4 x1_x2 1
5 x1_x3 NA
6 x2_x3 1


注意:确保您的 Store_Name变量是一个字符非因子,否则 combn()将失败

关于r - 如何计算不同群体的共同值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53756030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com