在R中的Days中创建一个tenure列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中的Days中创建一个tenure列相关的知识,希望对你有一定的参考价值。

*编辑

我正在尝试在df中创建一个列,向我显示客户任期内的日期编号。以下是为此创建模拟df的代码: -

     Date<-c("20/07/2018", "21/07/2018", "25/07/2018", "02/08/2018", "05/08/2018", "10/08/2018")
     ClientId<-c("aaa", "bbb", "ccc", "aaa", "bbb", "ccc")
     EventId<-c("klk109", "rrt234", "hjk786", "yyu777", "tyw909", "nnl991")
     dateclient<-cbind(Date, ClientId)
     LoginDates<-cbind(dateclient, EventId)
     View(LoginDates)

哪个应该给你这样的东西: -

   head(LoginDates)

      Date     ClientId  EventId 
  "20/07/2018" "aaa"    "klk109"
  "21/07/2018" "bbb"    "rrt234"
  "25/07/2018" "ccc"    "hjk786"
  "02/08/2018" "aaa"    "yyu777"
  "05/08/2018" "bbb"    "tyw909"
  "10/08/2018" "ccc"    "nnl991"

基本上,我想创建一个列添加到这样的结尾

     Date    ClientId  EventId   tenureDay
 "20/07/2018" "aaa"    "klk109"      1
 "21/07/2018" "bbb"    "rrt234"      1
 "25/07/2018" "ccc"    "hjk786"      1
 "02/08/2018" "aaa"    "yyu777"     13
 "05/08/2018" "bbb"    "tyw909"     15
 "10/08/2018" "ccc"    "nnl991"     16

但是,我在我的数据集中的主要问题(上面是模拟df),一些客户每天有多个交互(有些已经有10个,20个等等)。我写的代码(“for”循环和一些data.table代码)返回了交互次数(或EventIds),而不是任期中的日期数。如果客户已经在服务中工作了10天并且在那段时间内已经进行过4次交互,那么我希望tenureDay列代表他们在特定交互发生的任期。

希望这是有道理的,大大提前谢谢你! :)

答案

谢谢你修改这个问题!

为了再现性:

LoginDates <- fread("Date     ClientId  EventId 
                    2018-07-20 aaa    klk109
                    2018-07-21 bbb    rrt234
                    2018-07-25 ccc    hjk786
                    2018-08-02 aaa    yyu777
                    2018-08-05 bbb    tyw909
                    2018-08-10 ccc    nnl991")

使用dplyr,你可以试试这个:

LoginDates %>%
  group_by(ClientId) %>%
  mutate(tenureDay = as.Date(Date) - head(as.Date(Date),1))

我真的希望这能解决你的问题!

编辑:

如果您不希望您的结果显示为x Days,请尝试:

LoginDates %>%
  group_by(ClientId) %>%
  mutate(tenureDay = as.numeric(as.Date(Date) - head(as.Date(Date),1)))

以上是关于在R中的Days中创建一个tenure列的主要内容,如果未能解决你的问题,请参考以下文章

DAX - 根据事实表中的最新数据运行日期在日期维度表中创建滚动的“过去 7 天内”TRUE/FALSE 列

在片段android中创建listview

R: 从条件列表中创建指标列。

如何在 SQL Server 中创建忽略 NULL 值的计算几何列

在 Visual Studio 中创建构造函数的代码片段或快捷方式

在R中创建列联表的问题