gpt4 book ai didi

r - R 中的新客户或老客户

转载 作者:行者123 更新时间:2023-12-04 09:39:06 24 4
gpt4 key购买 nike

我有以下数据集,已经按交易排序:

dataset <- data.frame(id = c(1,2,3,4,2,4,6,7,3,2),
transaction = c(1,2,3,4,5,6,7,8,9,10),
amount = c(200,100,50,100,50,300,100,50,100,50))

如您所见,每个客户都有一个 ID 和在交易中花费的金额。

我的问题是,如何确定客户是交易中的新客户还是经常性客户。新客户意味着这是它的第一笔交易,接下来的交易是经常性的。
recurrence_status <- c("new","new","new","new","recurrent",
"recurrent","new","new","recurrent","recurrent")

到目前为止,我已经尝试了以下方法:
for (i in 1:(length(dataset$transaction)-1)){
for(j in 2:length(dataset$transaction)){
j <- j + 1
comp <- dataset[j:length(dataset$id)]
ifelse((is.element(dataset[i,1]),comp),"recurrent","new")
}
}

但是由于括号,它给了我一个错误。我知道应该尽可能避免在 R 中使用循环。请,任何帮助将受到欢迎。

问候,

最佳答案

base R ,这可以通过 duplicated 来完成

dataset$recurrence_status  <- c("new", "recurrent")[duplicated(dataset$id) + 1]
dataset$recurrence_status
#[1] "new" "new" "new" "new" "recurrent" "recurrent" "new" "new" "recurrent"
#[10] "recurrent"

关于r - R 中的新客户或老客户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60175703/

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