View in Telegram
ABC-анализ методом двух касательных #АнатомияФункций – приёмы Всем привет! Чуть не поругались с Игорем на тему, какой метод определения границ групп в АВС-анализе является «правильным», по этому поводу восстанавливаю справедливость и привожу вариант для динамических границ, а именно, метод двух касательных:
(таблица,группа,столбцы)=>
[   g=(x)=>[a=Record.ToList(Record.SelectFields(x,столбцы)),
            b=Record.Field(dict,Record.Field(x,группа)),
            c=List.Transform(List.Zip({a,b}),(x)=>if x{0}>=x{1}{0} then "A" else if x{0}>=x{1}{1} then "B" else "C")][c],
    f=(x)=>(y)=>[a=List.Buffer(Table.Column(y,x)),
                b=List.Average(a),
                c={b,List.Average(List.Select(a,(x)=>x<b))}][c],
    gr = Table.Group(таблица,группа,List.Transform(столбцы,(x)=>{x,f(x)})),
    dict = Record.FromList(Table.ToList(gr,List.Skip),Table.Column(gr,группа)),
    add = Table.AddColumn(таблица,"tmp",g),
    nms = List.Transform(столбцы,(x)=>"ABC_"&x),
to = Table.SplitColumn(add,"tmp",(x)=>x,nms)][to]
Ну а что тут к чему и почему так мало кода… смотрим в видосе. Для подписчиков с исходниками – Sponsr Рутуб Дзен Лайк, коммент, подписка приветствуются ))) Надеюсь, было полезно. Всех благ! @buchlotnik
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily