我有一个通话日志数据集,我需要对其进行迭代计数,直到找到特定值。
这个想法正在回答“在看到这个特定值之前输入了多少条记录?”的问题。在我的真实数据中,问题将被表述为“在他们接听电话之前我们给每个人打了多少次电话?”
我的数据有 3 列:
这里有 6 行示例数据:
data <- data.frame(PhoneNum = c("1112223333","1112223333","1112223333","1112223334","1112223334","1112223334"),
Answered = c("Voice Mail", "Answering Machine", "Member Answered", "Voice Mail", "Answering Machine", "Member Answered"),
Date = Sys.Date() - 1:6)
我想做的是计算在会员接听电话之前每个电话号码被拨打的次数。输出希望如下所示:
data <- data.frame(PhoneNum = c("1112223333","1112223333","1112223333","1112223334","1112223334","1112223334"),
Answered = c("Voice Mail", "Answering Machine", "Member Answered", "Voice Mail", "Answering Machine", "Member Answered"),
Date = Sys.Date() - 1:6,
CallAttempts = c("1", "2", "3", "1", "2", "3")) %>% filter(str_detect(Answered, "Answered"))
但是,如果可以避免的话,我不想丢失所有其他行..
最好的情况是执行我在此处采样的操作并仅使用“已应答”呼叫创建新的 DF 吗?
最终我试图确定 1. 总共进行了多少次呼叫尝试,2. 其中有多少次呼叫以“印象”结束(会员知道我们公司打过电话并且他们需要给我们回电的任何方式......一些)我们的“已接听”值中的将是“错误号码”或无法为会员留言),以及 3. 每个会员在接听电话之前尝试了多少次(需要获得每次尝试的平均次数)回答)
data |>
arrange(Date) |>
mutate(call_num = row_number(), .by = PhoneNum) |>
filter(str_detect(Answered, "Answered"))