線索分配的Rcode實(shí)現(xiàn)

在工作中,朋友們有沒有遇到過這種情況:
用Excel處理數(shù)據(jù),步驟繁瑣,容易出錯(cuò),且每隔一段時(shí)間就需要處理一次,比如:業(yè)績的日報(bào)、周報(bào)、月報(bào),潛意識里知道這些事情都可以用程序解決,但............................................實(shí)際情況是要么自己不會也不知道誰可以幫忙、要么自己會寫但不想花時(shí)間思考如何寫。

本篇分享一個(gè)常見的案例:“線索分配”,啥是線索分配呢?
1> 與銷售部門打交道過的朋友就會了解,銷售經(jīng)理獲得的客戶信息,一部分是自己的客戶積累,一部分來自公海線索的分配(即公司存量中暫無銷售服務(wù)的客戶,簡稱“公海”),我們把客戶信息稱為線索;
2> 將公海線索分配給銷售經(jīng)理需要一些規(guī)則,比如:優(yōu)質(zhì)客戶分配給成交率高的銷售,有地域?qū)傩缘木€索優(yōu)先分配給同地區(qū)的銷售。

來看個(gè)具體的例子吧:

1. 出題目,定邏輯
2. 貼代碼,抄作業(yè)

一、出題目,定邏輯

有99個(gè)客戶線索,需要分配給8位銷售經(jīng)理,具體要求如下:
1> 整體均勻分配,平均每人12個(gè)客戶線索,有3位銷售經(jīng)理可以分配到13個(gè)客戶線索;
2> 如果客戶所在城市有銷售經(jīng)理,優(yōu)先分配給該城市的銷售經(jīng)理;
3> 如果該客戶所在城市無銷售經(jīng)理,可以隨機(jī)分配銷售人員。
上述3個(gè)條件必須同時(shí)滿足。

code實(shí)現(xiàn)的主邏輯:給客戶線索表打銷售經(jīng)理的標(biāo)簽。
1> 對每一條線索,遍歷查找符合條件的銷售,使用for+for+if嵌套函數(shù);
2> 線索分配條件根據(jù)優(yōu)先級用3段邏輯實(shí)現(xiàn),城市匹配>隨機(jī)匹配>獎勵(lì)分配(線索不整除銷售經(jīng)理數(shù),余數(shù)線索的隨機(jī)分配)

二、貼代碼,抄作業(yè)

data_custs是線索數(shù)據(jù)集
data_sales是銷售經(jīng)理數(shù)據(jù)集

cnt<-as.integer(dim(data_custs)[1]/dim(data_sales)[1])?? # 每位銷售經(jīng)理均分得到的線索數(shù)
data_custs$sales<-'' # 定義線索表新列,用于記錄銷售經(jīng)理姓名
data_custs$city_sales<-'' # 定義線索表新列,用于記錄銷售經(jīng)理所屬城市
data_custs$label<-'' # 定義線索表新列,用于記錄分配條件的類型

1. 城市規(guī)則線索匹配:

for (i in 1:dim(data_custs)[1]) {
?for (j in 1:dim(data_sales)[1]) {
?if (data_custs$city[i]==data_sales$city_sales[j] & # 客戶城市與銷售城市相同
? ? data_custs$sales[i]=='' & # 客戶的銷售標(biāo)簽為空,尚未分配銷售
? ? length(data_custs$sales[data_custs$sales==data_sales$sales[j]])<cnt # 篩選當(dāng)前銷售分配到的線索,數(shù)量小于均值
?)
{
?data_custs$sales[i]<-data_sales$sales[j]
?data_custs$city_sales[i]<-data_sales$city_sales[j]
?data_custs$label[i]<-'1.城市匹配'
?print(paste0(i,'---線索分配成功!'))
?break
?}
?else { }
?}
?}

2. 隨機(jī)匹配

for (i in 1:dim(data_custs)[1]) {
?for (j in 1:dim(data_sales)[1]) {
?if (data_custs$sales[i]=='' & # 客戶的銷售標(biāo)簽為空,尚未分配銷售
? ? ?length(data_custs$sales[data_custs$sales==data_sales$sales[j]])<cnt # 篩選當(dāng)前銷售分配到的線索,數(shù)量小于均值
?)
?{
?data_custs$sales[i]<-data_sales$sales[j]
?data_custs$city_sales[i]<-data_sales$city_sales[j]
?data_custs$label[i]<-'2.隨機(jī)匹配'
?print(paste0(i,'---線索分配成功!'))
?break
?}
?else { }
?}
?}

3. 獎勵(lì)分配

for (i in 1:dim(data_custs)[1]) {
?for (j in 1:dim(data_sales)[1]) {
?if (data_custs$sales[i]=='' & # 客戶的銷售標(biāo)簽為空,尚未分配銷售
? ? ?length(data_custs$sales[data_custs$sales==data_sales$sales[j]])-1<cnt # 篩選當(dāng)前銷售分配到的線索,數(shù)量小于均值
?)
?{
?data_custs$sales[i]<-data_sales$sales[j]
?data_custs$city_sales[i]<-data_sales$city_sales[j]
?data_custs$label[i]<-'3.獎勵(lì)分配'
?print(paste0(i,'---線索分配成功!'))
?break
?}
?else { }
?}
?}

看看數(shù)據(jù)結(jié)果長啥樣,以及各種分配規(guī)則的匹配結(jié)果:

print(paste0('客戶線索數(shù):',length(unique(data_custs$mobile)),' ',
? ? ? ? ? ? ? ? ? ? '銷售經(jīng)理數(shù):',length(unique(data_custs$sales)),' ',
? ? ? ? ? ? ? ? ? ? '人均線索數(shù):',cnt))
print(table(data_custs$label)) # 線索分配情況
head(data_custs)

拿走不謝!~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,740評論 18 399
  • 關(guān)于IT的英語 win10 系統(tǒng) win + x apps and features 應(yīng)用和功能 feature:...
    我要寫小說閱讀 4,319評論 0 1
  • 編者注:本文摘譯自Docsend公司網(wǎng)站博客,譯文有刪改。內(nèi)容不當(dāng)之處請?jiān)贙uick微信公眾號后臺留言,獲取更多優(yōu)...
    崔超閱讀 18,478評論 1 8
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,017評論 0 11
  • abandon, desert, forsake, leave, give up abandon :強(qiáng)調(diào)永遠(yuǎn)或完全...
    sunxiaohang閱讀 3,774評論 0 3

友情鏈接更多精彩內(nèi)容