如何通过两个因素进行计算

时间:2019-10-28 13:28:51

标签: r

我想每天计算每个员工的客户满意度,我的数据如下:

df <- data.frame(
        rep(seq(
                from=as.Date("2012-1-1",tz="UTC"),
                to=as.Date("2012-1-30",tz="UTC"),by="day"),50),
        as.factor(c(rep("A",300),rep("B",300),rep("C",300), rep("D",300),rep("E",300))),
        sample(c(1:5), 1500, replace = TRUE))
colnames(df)<-c("time", "staff_NO.", "rating")

df

每位员工的满意度为(等级5和等级4)/等级总数。

我通常知道如何计算每个员工的满意度, 我不知道如何使用group_by函数来做到这一点,如果有人知道,请告诉我! !!

staffname<-unique(df$staff_NO.)
satisfied<-c()
for(k in 1: length(staffname)){ 
        print(satisfied[k]<-sum(df$staff_NO.==staffname[k]& (df$rating=="4"|df$rating=="5")) 
                /sum(df$staff_NO.==staffname[k]))
}

但是我在向其中添加时间变量时遇到问题,这意味着我不知道如何计算每个员工每天的满意度,有人可以帮忙吗?

##this is what I ve tried....

day<-unique(df$time)
staffname<-unique(df$staff_NO.)
satisfied<-c()

for (j in 1: length(day)){
        for(k in 1: length(staffname)){ 
             print(sum(df$staff_NO.==staffname[k]& df$time==day[j]&(df$rating=="4"|df$rating=="5")) 
                /sum(df$staff_NO.==staffname[k]))& df$time==day[j]..
 *I want to save the result as a dataframe containing date, staff NO., and satisfaction level.*

0 个答案:

没有答案