我想每天计算每个员工的客户满意度,我的数据如下:
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.*