gpt4 book ai didi

r - 考虑到因子频率,如何通过客户 ID 聚合数据帧?

转载 作者:行者123 更新时间:2023-12-04 21:17:10 25 4
gpt4 key购买 nike

我有一个记录不同客户购买的数据框,由他们的“ID”标识。此外,它还会记录他/她每次购买的地点,例如商店 #1 或商店 #2:

> head(data)
ID store
1 1
2 3
1 1
1 2
2 3
3 1
3 2

我一直在尝试做的是,对于每个客户,选择他/她购买最多的商店。我正在寻找的输出将是一个类似于以下内容的数据框:
ID store
1 1
2 3
3 1

ID #3 的客户在不同的商店进行了 2 次购买,聚合函数选择哪一个是无关紧要的。但是,ID 号 1 进行了 3 次购买,其中 2 次在商店 #1,1 次在商店 #2,所以我必须选择商店 #1。

我正在努力寻找任何一种方法来做到这一点,但我的方法是基于使用聚合函数
newdata <- aggregate(data$store,list(data$ID),FUN)
使用聚合函数是最好的方法吗?我在这里看到的问题是使用哪个函数作为 FUN。我曾尝试使用我在教程中找到的 Mode 函数,但没有任何成功,它被定义为:
Mode <- function(x) {
ux <- unique(x)
ux[which.max(tabulate(match(x, ux)))]
}

任何想法/想法?

谢谢,

贝尔纳多

最佳答案

您可以尝试使用 aggregate 基本上建立在您开始的想法的基础上。 .

aggregate(store ~ ID, data = df, function(x){
x[which.max(table(x))]
})

# ID store
# 1 1 1
# 2 2 3
# 3 3 1

关于r - 考虑到因子频率,如何通过客户 ID 聚合数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20152424/

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