Вход | Регистрация



1С8 расчет медианы

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

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

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

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

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

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

типа
10
11
12
15
5658
5662
22122


на одно значение срезать или на 2 или на 3 ?
   gantonio
 
28 - 20.12.18 - 16:26
(27) ну просто по 10 процентов крайних.
Впрочем надо смотреть на реальные данные.
Да и вообще алгоритмы удаления выбросов есть, но они не универсальны.
   lamme
 
29 - 20.12.18 - 16:29
на самом деле
я первый раз этот параметр вообще рассчитываю.
краем уха слышал что есть такое
но практическое применение - вот только сегодня
   gantonio
 
30 - 20.12.18 - 16:32
ну, думаю любой вараинт подходит, если он приближает к задуманному ..точных рецептов все равно нет
   lamme
 
31 - 20.12.18 - 16:43
ваще жесть
http://catalog.mista.ru/public/319421/

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

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

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

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

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

Насколько я помню туда вся таблица передается, без указания колонок которые надо анализировать, платформа сама определяет что можно проанализировать
   Alres
 
37 - 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
   ILM
 
38 - 20.12.18 - 18:18
Там про нейросеть м.б. нужно узнать? )))


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует