gpt4 book ai didi

r - 识别 r 中的重复

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

您好,我有一个数据框,它看起来像这样:

Df

test = data.frame("Year" = c("2015","2015","2016","2017","2018"), 
"UserID" = c(1,2,1,1,3), "PurchaseValue" = c(1,5,3,3,5))

其中“Year”是购买时间,“UserID”是买家。

我想创建一个变量“RepeatedPurchase”,如果是重复购买则给出“1”,否则为 0(如果是唯一购买/如果是第一次购买)。

因此,所需的输出将如下所示:

Df2

我试图通过首先创建一个变量“Se”来实现这一点,该变量告诉该购买是否是该买家的第一次/第二次/第三次...购买,但我的代码不起作用。想知道我的代码有什么问题,或者是否有更好的方法可以识别重复购买?谢谢!

library(dplyr)
df %>% arrange(UserID, Year) %>% group_by(UserID) %>% mutate(Se = seq(n())) %>% ungroup()

最佳答案

你不需要 dplyr。您可以按如下方式使用 duplicated():

test=data.frame("Year" = c("2015","2015","2016","2017","2018"), "UserID" = c(1,2,1,1,3), "PurchaseValue" = c(1,5,3,3,5))

repeated<-duplicated(test$UserID)
# [1] FALSE FALSE TRUE TRUE FALSE
test$RepeatedPurchase<-ifelse(repeated==T,1,0)
test
# Year UserID PurchaseValue RepeatedPurchase
# 1 2015 1 1 0
# 2 2015 2 5 0
# 3 2016 1 3 1
# 4 2017 1 3 1
# 5 2018 3 5 0

干杯!

关于r - 识别 r 中的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50919035/

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