根据特定逻辑计算累积值

问题描述 投票:0回答:1

我是R的新手,有一个名为final的数据框作为主要数据集,如下所示

dates_seq_ajay<-as.data.frame((seq(as.Date("2019/11/1"), by = "month", length.out = 6)))
ajay_emp_no <-1
ajay_ramped <-c(0,0,0,0,1,1)
ajay_loans <-c(1,22,17,25,21,23)
name<-"ajay"
data<-cbind(name,ajay_emp_no,dates_seq_ajay,ajay_ramped,ajay_loans)
colnames(data)<-c("name","emp_no","date","Flag","loans")


dates_seq_dv<-as.data.frame((seq(as.Date("2019/11/1"), by = "month", length.out = 4)))
dv_emp_no <-2
dv_flag <-c(0,0,0,0)
dv_loans <-c(2,15,42,1)
name<-"dv"
data1<-cbind(name,dv_emp_no,dates_seq_dv,dv_flag,dv_loans)
colnames(data1)<-c("name","emp_no","date","Flag","loans")



dates_seq_prince<-as.data.frame((seq(as.Date("2020/5/1"), by = "month", length.out = 5)))
prince_emp_no <-3
prince_flag <-c(0,0,0,1,1)
prince_loans <-c(16,31,28,32,23)
name<-"prince"
data2<-cbind(name,prince_emp_no,dates_seq_prince,prince_flag,prince_loans)
colnames(data2)<-c("name","emp_no","date","Flag","loans")

final<-rbind(data,data1,data2)

我想为每个员工查找月数,绩效和累积绩效这样,如果某个员工第一次遇到标志1,则如果该员工标志为0且没有标志1,则计算上述值,然后计算月份,绩效和累积绩效,直到有记录为止。

针对每位员工

月份是他在场的月份数,

表现是每月贷款的百分比/总贷款

总贷款是直到第一次]找到标记的所有贷款的总和,如果标记始终为0,则总贷款是所有贷款的总和

累积业绩是使雇员在每一步中累积的贷款总额,直到我们标记1

输出如下所示

enter image description here

我是R新手,有一个名为final的数据框作为主数据集,如下所示dates_seq_ajay

r dplyr tidyverse tidyr lubridate
1个回答
0
投票

我们可以尝试

© www.soinside.com 2019 - 2024. All rights reserved.