Имя: Пароль:
1C
 
1С8 расчет медианы
,
0 lamme
 
20.12.18
15:40
Есть ТЗ с числовой колонкой.
Как медиану рассчитать ?
есть что-то - хоп! и вот тебе медиана

(немного теории - кто не в курсе - https://ru.wikihow.com/найти-среднее-значение,-моду-и-медиану )
1 RomanYS
 
20.12.18
15:43
(0) Отсортировать и взять среднее значение или среднеарифметическое от двух средних (при четном количестве строк)
2 lamme
 
20.12.18
15:47
это и так понятно
3 lamme
 
20.12.18
15:47
я про то чтоб готовое было
4 RomanYS
 
20.12.18
15:48
(3)  2 строки кода
5 RomanYS
 
20.12.18
15:48
*(4) 3 строки если надо сохранить исходную ТЗ
6 lamme
 
20.12.18
15:52
сохранить надо
но я в 3 не укладываюсь ))
строка1 - определение чет нечет
строка2 - определение для чет
строка 3 - определение для нечет

но - всякие Если . тогда .. конецесли ...
еще строки

и с определением когда нечет - чето не але .
как их там найти ... два значения по центру )
7 тхулбо
 
20.12.18
15:53
(0) Запросом делай, будь мужиком :))
8 RomanYS
 
20.12.18
15:54
(6)
Конструкция ?(Условие,ВыражениеДа,ВыражениеНет) не знакома?
9 RomanYS
 
20.12.18
15:54
(7) внешней компонентой быстрее
10 gantonio
 
20.12.18
15:54
воспользуйся методом 1с - он умеет считать медиану)
11 lamme
 
20.12.18
15:54
(8)
знакома ... с непривычки для непонятных условий - сложночитаема
12 lamme
 
20.12.18
15:55
(10)
какой это такой метод ?
в хелпе есть медиана - но как ей пользвоаться = хз
13 lamme
 
20.12.18
15:57
ну а все таки .. застрял на
определение для нечет
есть ТЗ. КоличествоСтрок() - нечетное количество

как определить 2 числа по середине ?
14 gantonio
 
20.12.18
15:58
ну там есть метод анализ данных
на вход подаешь таблицу - это вектора данных
далее говоришь анализ
для каждого вектора он дает общую стастистику .. из нее и читаешь
15 RomanYS
 
20.12.18
15:59
(13) нечетное количество - посередине ОДНО число
16 lamme
 
20.12.18
16:00
(15)
пардон - да .. не то написал

для четного количества строк )))
17 lubitelxml
 
20.12.18
16:00
(13) ну раздели колво строк пополам, получишь индекс строки 1-ого  число, далее прибавь 1 к индексу строк - получишь второе
18 gantonio
 
20.12.18
16:02
но вообще все что надо это количество случаев поделить на два
это будет индекс
далее упорядочить значения и взять значение по этому индексу
ну или по среднему от суммы крайних .. это и будет медиана
19 RomanYS
 
20.12.18
16:02
(16)  смотри (17), только "прибавь" замени на убавь ))
20 gantonio
 
20.12.18
16:05
зачем тебе медиана то понадобилась ?
21 Конструктор1С
 
20.12.18
16:08
22 lamme
 
20.12.18
16:14
спасибо
методом отладчика и математки (ручка с листочком) - сделал
23 lamme
 
20.12.18
16:14
(21)
а это прям круто
24 lamme
 
20.12.18
16:15
(20)
сказали ..
парсится сайт
в нем - цены на товар от 1 до 1000
ни верхнее - ни нижнее значение - не реальные
в нижнем ставят - потому что нет цены (а без цены - товар не отображается)
в верхнем - жабоглоты ... никогда не продадут ..

)
25 gantonio
 
20.12.18
16:15
(21) только вот там несколько не правильно дисперсия и среднеквадратичное отклонение )  хотя это смотря как на них смотреть
26 gantonio
 
20.12.18
16:18
(24) тогда надо моду брать, или среднее от выборки у которой срезаны верхние нижние значения. А медиана скажем для другого .. она как бы для описания совокупности и понимания что там внутри творится.
27 lamme
 
20.12.18
16:22
(26)
у которой срезаны верхние нижние значения.
так как их срезать - на сколько значений срезать ?

типа
10
11
12
15
5658
5662
22122


на одно значение срезать или на 2 или на 3 ?
28 gantonio
 
20.12.18
16:26
(27) ну просто по 10 процентов крайних.
Впрочем надо смотреть на реальные данные.
Да и вообще алгоритмы удаления выбросов есть, но они не универсальны.
29 lamme
 
20.12.18
16:29
на самом деле
я первый раз этот параметр вообще рассчитываю.

краем уха слышал что есть такое
но практическое применение - вот только сегодня
30 gantonio
 
20.12.18
16:32
ну, думаю любой вараинт подходит, если он приближает к задуманному ..точных рецептов все равно нет
31 lamme
 
20.12.18
16:43
ваще жесть
http://catalog.mista.ru/public/319421/

это в жизни кто использует ?
32 Михаил Козлов
 
20.12.18
16:48
(27) Отрезать всё, что выходит за среднее+-3 дисперсии.
33 Alres
 
20.12.18
17:23
АнализДанных = Новый АнализДанных;

АнализДанных.Источник = ТвояТаблицаЗначений;
АнализДанных.ТипАнализа = Тип("АнализДанныхОбщаяСтатистика");

АнализДанных.Выполнить;

Медиана = АнализДанных.Медиана;
34 Alres
 
20.12.18
17:26
(33) немного не так

АнализДанных.Выполнить();

Медиана = АнализДанных.НепрерывныеПоля.Медиана;
35 RomanYS
 
20.12.18
17:28
(33) (34) А где указана колонка ТЗ?
36 Alres
 
20.12.18
17:33
(35) Это просто наводка куда копать, точный синтаксис я не помню.

Насколько я помню туда вся таблица передается, без указания колонок которые надо анализировать, платформа сама определяет что можно проанализировать
37 Alres
 
20.12.18
17:51
Вот рабочий пример

    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Число", Новый ОписаниеТипов("Число"));

    Строка1 = ТЗ.Добавить();
    Строка1.Число = "10";    
    Строка2 = ТЗ.Добавить();
    Строка2.Число = "11";
    Строка3 = ТЗ.Добавить();
    Строка3.Число = "12";    
    Строка4 = ТЗ.Добавить();
    Строка4.Число = "15";    
    Строка5 = ТЗ.Добавить();
    Строка5.Число = "5658";        
    Строка6 = ТЗ.Добавить();
    Строка6.Число = "5662";
    Строка7 = ТЗ.Добавить();
    Строка7.Число = "22122";
    
    
    АнализДанных = Новый АнализДанных;
        
    АнализДанных.ИсточникДанных = ТЗ;
    АнализДанных.ТипАнализа = Тип("АнализДанныхОбщаяСтатистика");
    
    РезультатАнализа = АнализДанных.Выполнить();
    
    Медиана = РезультатАнализа.НепрерывныеПоля.Число.Медиана;


Результат - 15
38 ILM
 
гуру
20.12.18
18:18
Там про нейросеть м.б. нужно узнать? )))