Меню

Главная
Случайная статья
Настройки
Обсуждение модуля:Statistical: различия между версиями
Материал из https://ru.wikipedia.org

Содержание

formatNum

formatNum формирует числа в читаемом виде, с разбивкой по разрядам. Есть предложение простой пробел заменить на неразрывный. То есть сделать замену конструкции:
format = {decimalMark = ",", groupMark = " ", groupMinLength = 5, groupOnlyIntegerPart = true}


- из строки 126, в текущей версии, на конструкцию:
format = {decimalMark = ",", groupMark = " ", groupMinLength = 5, groupOnlyIntegerPart = true}


- по моему этого достаточно. @Игорь Темиров: В противном случае пробел становится переносим и число может быть размазано по разным строчкам, в результате оно нечитаемо. --Туча 22:07, 14 мая 2015 (UTC)[ответить]
@Туча: Да, вы правы. Игорь Темиров 07:13, 15 мая 2015 (UTC)[ответить]


Включён доступ к произвольным объектам Викиданных

Видимо, статистические таблицы скоро можно будет постепенно отправлять на пенсию. Население НП при наличии такой информации на Викиданных теперь можно получить из кода tonumber(mw.wikibase.getEntityObject('Q656'):getBestStatements('P1082')[1].mainsnak.datavalue.value.amount) (mw.wikibase.getEntityObject('Q656'):formatPropertyValues('P1082')) выдаёт "5 131 942±1", потому что всем влом настраивать другую точность). Правда, пока я что-то не вижу функции, которая бы получала "Q656" из "Санкт-Петербург". Ignatus 14:51, 23 июня 2015 (UTC)[ответить]
@Ignatus: Отличная новость! Игорь Темиров 04:00, 24 июня 2015 (UTC)[ответить]


Отмена работы параметра кэш

Темиров, у вас функция FormatH в коде заявлена, а не реализована, и в соответствующих строчках может происходить ошибка. Чем Вы тут собственно недовольны? --Туча 06:50, 6 ноября 2015 (UTC)[ответить]

Примеры поведения:

{{Участник:Туча/Население|Краснодонецкая|Хеш}}:1385359418

{{Население|Краснодонецкая (Белокалитвинский район)|Хеш}}:662921844

--Туча 06:56, 6 ноября 2015 (UTC)[ответить]
ча, спасибо, что напомнили. Удалил. Игорь Темиров 07:32, 6 ноября 2015 (UTC)[ответить]
Почему нужно что то удалять, если можно просто сделать работоспособным? --Туча 08:09, 6 ноября 2015 (UTC)[ответить]
Не видите войну правок. Объясните, для чего это нужно. Игорь Темиров 08:12, 6 ноября 2015 (UTC)[ответить]
Я лишь вернул версию до всех изменений, это полное соответствие ВП:КОНС. А намёк на войну правок, и настрой на конфронтацию - это предложение что-то обсудить на СО с не аргументированной отменой правок, без открытия этого самого обсуждения. Если параметр ввёден и введён вами!!, то, вероятно, вам не нужно объяснять зачем он нужен, например для отладки и поиска ошибок. --Туча 08:17, 6 ноября 2015 (UTC)[ответить]
Да, я ввел эту функцию в первоначальном варианте, так как думал использовать шаблон из других вики, но потом выяснилось, что это невозможно и расчёт хеша нужен только внутри модуля. Я поблагодарил вас (спасибо, что напомнили) и удалил. Вы не возражаете, если я удалю найденную вами неиспользуемую, ошибочную, ненужную, не содержащую программного кода функцию? Игорь Темиров 08:24, 6 ноября 2015 (UTC)[ответить]
Я починил эту функцию, я нашел эту ошибку, то есть она понадобилась. Она нужна для исследования работы модуля. --Туча 08:33, 6 ноября 2015 (UTC)[ответить]
Для исследований существует личное пространство. Скопируйте к себе модуль и исследуйте. Игорь Темиров 08:53, 6 ноября 2015 (UTC)[ответить]
Да модуль можно укопироватся в личное пространство до посинения, Вы же потом не дадите ничего вставить из личного пространства обратно в модуль, как показывает практика и не раз. --Туча 08:57, 6 ноября 2015 (UTC)[ответить]
Чем вам не угадил параметр nocat, позволяющий не включать страницу ни в какие категории, тоже непонятно. Это достаточно общая практика в википедии, о том что такой параметр иногда полезен. Вы сами ставили мне в вину, что страница замусоривает категорию, и надо сделать чтобы тестовые страницы, для которых сообщение об ошибке является нормальной работой, туда не попадали. --Туча 08:27, 6 ноября 2015 (UTC)[ответить]
Вы не ответили на мой вопрос. Игорь Темиров 08:31, 6 ноября 2015 (UTC)[ответить]
Вы тоже не ответили на мой вопрос, зачем вы отменили мои правки. Любое изменение модуля почему-то воспринимается в штыки, я же ничего не поломал, зачем меня было отменять? --Туча 08:34, 6 ноября 2015 (UTC)[ответить]
Вы просто не обратили внимания. Повторю свой ответ: Да, я ввел эту функцию в первоначальном варианте, так как думал использовать шаблон из других вики, но потом выяснилось, что это невозможно и расчёт хеша нужен только внутри модуля. Я поблагодарил вас (спасибо, что напомнили) и удалил. Если какие-то слова или фразы непонятны, это не значит, что я не ответил. Просто напишите конкретно, что не поняли, и я распишу подробнее. Игорь Темиров 08:38, 6 ноября 2015 (UTC)[ответить]
Ну а теперь поставьте себя на место другой стороны. Человек потратил время, починил эту функцию, поэтому давайте теперь её удалим, потому что вам она не нужна, потому что вы этот свой кэш считаете в off line, ну и как? Если люди вас спрашивают что это за числа, то они должны быть в праве хотя бы их получить. Вот представьте, случился апокалипсис, перестал работать бот TemirovBot, перестал заходить в википедию Игорь Темиров, люди же в праве наверно будут отойти от концепции, что кэш имеет право знать только Игорь Темиров? --Туча 08:54, 6 ноября 2015 (UTC)[ответить]
Только что заметил ваш комментарий к моему предыдущему вопросу. Отвечу тогда на ваш вопрос по поводу Чем вам не угадил параметр nocat?. А чем он мне не угодил? Вроде ничего против не имею. Это действительно выход. Если не получается скопировать модуль в личное пространство и экспериментировать там, то хотя бы так. Игорь Темиров 08:58, 6 ноября 2015 (UTC)[ответить]
Делаешь правку, отменяют и просят обсудить, но обсуждение не открывают. Когда задаешь прямой вопрос чем не угадила правка, то никакого ответа на самом деле нет, и даже говорится что это выход. Ну и зачем было отменять? Ничего не понимаю. Специально же делались изменения несколькими правками, что бы если есть возражения, отменялись только те изменения, по которым они есть. --Туча 09:36, 6 ноября 2015 (UTC)[ответить]
Согласен с вашими аргументами. Спасибо. Игорь Темиров 11:15, 6 ноября 2015 (UTC)[ответить]


Возможность называть населённый пункт по разному

Сейчас в статье Чучковский район населенный пункт значится как Пет (Чучковский район), а в статье Пертовское сельское поселение как Пёт (Чучковский район), очень бы хотелось что бы вызов из шаблона Население работал в обоих случаях правильно. Полагаю вполне возможно реализовать что бы корректная работа была и в том и другом случае. К примеру, кто-нибудь будет называть его как Пёт (Рязанская область) и это тоже что бы не вызывало ошибку. Алясы это стандартная вещь во многих местах, когда одна и та же сущность может иметь несколько названий - реализовано через перенаправления даже в википедии. --Туча 09:52, 6 ноября 2015 (UTC)[ответить]
Туча Да, я видел ваши правки. Сам думал о чём-то подобном. Я хотел реализовать это через таблицы на странице хешей. Сейчас и так анализируется возврат на наличие таблицы в случае коллизий. Тогда понадобится добавить анализ первого аргумента таблицы. Если он числовой, то хеш подменяется хешем из таблицы. При таком алгоритме структура страницы региона останется неизменной. Да всё руки не доходят. Как вам такой вариант? Игорь Темиров 11:28, 6 ноября 2015 (UTC)[ответить]
Этот вариант был бы очень хорош если бы хеш таблицы были отсортированы по алфавиту, а не по хешу. --Туча 11:49, 6 ноября 2015 (UTC)[ответить]
При чём тут алфавит? Мы имеем устаревшее название. Вычисляем, ничего не подозревая, хеш. Обращаемся к странице хешей. Получаем ответ. Спрашиваем, а не таблица ли это? Если таблица, (начинается нововвведение) спрашиваем, не число ли первый аргумент? Если нет, то это коллизия и всё идёт по старому, если да, то заменяем хеш устаревшего названия на хеш нового названия, возвращённый таблицей. Игорь Темиров 12:01, 6 ноября 2015 (UTC)[ответить]
Хэш таблица не одна, а разбита на несколько частей, старое и новое название, если сортировка по алфавиту в одной её части скорей всего с вероятностью стремящейся к единице, а если сортировка по хэшу, то они с вероятностью стремящейся к единице в разных частях. --Туча 12:15, 6 ноября 2015 (UTC)[ответить]
Всё равно не пойму в чём проблема. Вместо cделанной вами правки [131830654]="RYA" будет [131830654]={1627890309, "RYA"}. Плюс описанный минимальный код в модуле. Страница региона при этом не нуждается в корректировке. Игорь Темиров 12:54, 6 ноября 2015 (UTC)[ответить]
А конструкции с вложенными массивами ещё хуже. Они же память жрут. На самом деле чем меньше вложенных массивов тем меньше нужно памяти, при одном и том же количестве данных. --Туча 13:29, 6 ноября 2015 (UTC)[ответить]
Если бы хэши были бы отсортированы по алфавиту, то ваш вариант мог бы выглядеть как [131830654]=1627890309, [1627890309]="RYA", и не было бы ни вложенных массивов, ни необходимости хватать соседнюю часть индекса. --Туча 13:47, 6 ноября 2015 (UTC)[ответить]


Названия разные, а хэш один: есть проблема, но есть и решение

Поступил запрос на изменение защищённой страницы.

За этим шаблоном должно следовать полное и детальное описание запроса, чтобы участник, не знакомый с предметом, мог выполнить его без промедлений. Если автор запроса знает Lua, лучше всего сразу приготовить код. Предложенные изменения должны быть либо очевидными, либо поддержаны консенсусом.

Обратите внимание, что страницы с этим шаблоном всего лишь попадают в категорию, которую изредка просматривают инженеры и администраторы. Куда более быстрым и эффективным способом внесения изменений на защищённые страницы является запрос в специальном Discord-чате или на странице технических запросов.

При внесении предложенных на страницах Википедии изменений в комментарии к правке необходимо будет указать ссылку на предложенное изменение (атрибуцию) для соблюдения лицензии CC BY-SA и условий использования.

Сейчас в модуле есть кусок кода, оставшийся ещё со времён, когда подстраницы сопоставлений были модулями
if type(RegionPage) == "table" then RegionPage = RegionPage[PlaceName] end


По идее он должен работать для случаев, когда два разных названия дают один хэш и нет другой возможности (вроде скобочной проверки на "(название региона)") сличить НП с корректной базой регионов. Но это именно "по идее". Дело в том, что сейчас, без RUS-NNN модулей (а для отказа от них была более чем веская причина, так что возврат к этой схеме не вариант) Lua распознаёт тип данных выводимых "экзотических" строк не как table, а как string — доказательство чему мы можем видеть тут (я заставил свой тестовый модуль проверить тип данных, выводимый по комбинации {{Население/STA-005|107744721}} — этому хэшу соответствуют Гришенское в Алтайском крае и Жёлтинский в Челябинской области). Результат не заставит себя долго ждать: попытка сделать вызов {{Население|Гришенское|тс}} или {{Население|Жёлтинский|тс}} закономерно кончится fail'ом — см. здесь. В принципе, можно было бы подобную строку сделать распознаваемой таблицей в Lua через loadString ([1]). Проблема однако в том, что эта функция отключена в Scribunto, о чём можно прочитать тут. Есть ли выход из этой патовой ситуации? Можно, конечно, указывать регион вручную — как я и сделал сейчас в том самом Жёлтинском. Но это костыль, IMHO. А можно сделать поавтоматичнее:
1) вводится специальный "псевдорегион" STA-Multinames, которому такие хэши и должны сопоставляться;
2) если у хэша название региона указано как STA-Multinames, то производится вызов {{Население/STA-Multinames|хэш|название НП}}. Который, в свою очередь, и даст корректный регион. Так, для того же Жёлтинского вызов будет таким: {{Население/STA-Multinames|107744721|Жёлтинский}}, что даст нам правильный регион RUS-CHE. Результат — a/b.


Соответственно, прошу внести в модуль следующее изменение: после строки
if type(RegionPage) == "table" then RegionPage = RegionPage[PlaceName] end


включить новую строку следующего содержания:
if RegionPage == "STA-Multinames" then RegionPage = frame:expandTemplate{ title = ("Население/"..RegionPage), args = { PlaceHash, PlaceName } } end


С уважением, --Seryo93 (о.) 14:29, 10 августа 2017 (UTC)[ответить]
@Seryo93: Да есть такая проблема {{Население|Жёлтинский|х}}:107744721,{{Население|Гришенское|х}}:107744721, но отдельный модуль тоже костыль. Скорее логичнее было бы переделать GetHashData, то есть заменить:
function GetHashData(PlaceHash) на function GetHashData(PlaceHash,PlaceName) в 68 строчке
if (HashData=="") then HashData=nil на if (HashData=="") then HashData= frame:expandTemplate{ title = templatename, args = { PlaceName } } if (HashData=="") then HashData=nil end в 75 строчке
local RegionPage = GetHashData(PlaceHash) на local RegionPage = GetHashData(PlaceHash,PlaceName) в 137 строчке
RegionPage = GetHashData(PlaceHash) на RegionPage = GetHashData(PlaceHash,PlaceName) в 142 строчке.
А if type(RegionPage) == "table" then RegionPage = RegionPage[PlaceName] end в строке 144 совсем удалить.


Тогда бы колизии без всяких дополнительных модулей можно было бы разрешать в самих шаблонах. Таким способом: правки. --Туча 17:28, 25 июня 2018 (UTC)[ответить]

185 строчка

Поступил запрос на изменение защищённой страницы.

За этим шаблоном должно следовать полное и детальное описание запроса, чтобы участник, не знакомый с предметом, мог выполнить его без промедлений. Если автор запроса знает Lua, лучше всего сразу приготовить код. Предложенные изменения должны быть либо очевидными, либо поддержаны консенсусом.

Обратите внимание, что страницы с этим шаблоном всего лишь попадают в категорию, которую изредка просматривают инженеры и администраторы. Куда более быстрым и эффективным способом внесения изменений на защищённые страницы является запрос в специальном Discord-чате или на странице технических запросов.

При внесении предложенных на страницах Википедии изменений в комментарии к правке необходимо будет указать ссылку на предложенное изменение (атрибуцию) для соблюдения лицензии CC BY-SA и условий использования.

Хотелось бы что бы в случае таких ошибок как: Кетанда (село), Арка (Хабаровский край) - модуль не падал в строке 185:
Source1 = RegionData['Источники'][PlaceData[NumRecord][3]][1]


, а выдавал хотя бы что-то разумное:
Source1 = ( RegionData['Источники'] and string.format("{{%s}}",PlaceData[NumRecord][3]) ) or (RegionData['Источники'][PlaceData[NumRecord][3]] and PlaceData[NumRecord][3]) or RegionData['Источники'][PlaceData[NumRecord][3]][1]


То есть логика должна быть такая, на мой взгляд, если ошибка в одом источнике, в качестве этого источника подставь хоть что-нибудь, но таблицу итоговую по населению всё таки нарисуй нормальную. Данный кусок кода должен, если нет таблицы Источники, воспринимать параметр три как имя шаблона, а если таблица источники есть, но в ней нет соотвествующей записи, то как готовый и форматированный источник подставлять само поле три. --Туча 16:41, 25 июня 2018 (UTC)[ответить]

Интерполяция в графиках

Поступил запрос на изменение защищённой страницы.

За этим шаблоном должно следовать полное и детальное описание запроса, чтобы участник, не знакомый с предметом, мог выполнить его без промедлений. Если автор запроса знает Lua, лучше всего сразу приготовить код. Предложенные изменения должны быть либо очевидными, либо поддержаны консенсусом.

Обратите внимание, что страницы с этим шаблоном всего лишь попадают в категорию, которую изредка просматривают инженеры и администраторы. Куда более быстрым и эффективным способом внесения изменений на защищённые страницы является запрос в специальном Discord-чате или на странице технических запросов.

При внесении предложенных на страницах Википедии изменений в комментарии к правке необходимо будет указать ссылку на предложенное изменение (атрибуцию) для соблюдения лицензии CC BY-SA и условий использования.

Есть предложение, заменить
"interpolate": {"value": "monotone"}


на
"interpolate": {"value": "linear"}


(встречается там два раза). А то, смотрите, какие графики получаются
Численность населения
1926[1]2002[2]2007[3]2008[4]2010[5]
13419212326


Землеройкин (обс.) 13:29, 16 августа 2018 (UTC)[ответить]
  • Комментарий: в обсуждении графика поднимался вопрос о линейной интерполяции, конкретных возражений не было, было несколько голосов "за". Но все так нахваливали дизайн из шаблона {{Graph:Population history}}, где интерполяция по умолчанию monotone... Кроме того, был минус: я точно помню, что при резких скачках численности населения на графиках с линейной интерполяцией возникали плохо выглядящие острые углы линии. Тем не менее, сейчас я этот эффект воспроизвести не могу (или он стал незначителен). Короче, никаких фундаментальных преимуществ monotone перед linear действительно нет, а недостаток monotone действительно очевиден. Обсуждалась и возможность полного удаления линий, но однозначной поддержки не получила. Такое поведение при интерполяции monotone — несомненный баг; поскольку он пока не исправлен и, возможно, никогда не будет исправлен, я поддерживаю этот запрос. --Браунинг (обс.) 14:18, 16 августа 2018 (UTC)[ответить]
  • Честно говоря, тут вообще графика не должно быть. Слишком неравномерно расположены реперные точки, слишком большой разрыв между первой и второй. Тут график не то что не даёт адекватную информацию — он вводит в заблуждение, это орисс. Надо вообще график заменить на гистограмму. GAndy (обс.) 17:54, 21 августа 2018 (UTC)[ответить]
  • Причём, так проблема, по-видимому, встречается много где — может даже подумать о ботозамене. GAndy (обс.) 17:56, 21 августа 2018 (UTC)[ответить]
    • Нет. Это отдельный вопрос, по которому были широкие обсуждения -- я привёл ссылки выше. Если желаете, можно открыть новое обсуждение, если есть какие-то новые, не учтённые ранее аргументы. --Браунинг (обс.) 20:01, 21 августа 2018 (UTC)[ответить]
    • Гистограмма тоже плохо, все точки будут расположены равномерно, независимо от того сколько лет между ними прошло. Да, это там есть в обсуждении. Землеройкин (обс.) 20:52, 22 августа 2018 (UTC)[ответить]
  • Я бы предпочёл вариант с исправлением интерполяции monotone, но это нужно где-то внутри Vega 2 ковыряться. Полгода назад пытался разобраться, где же проблема, но так и не нашёл. Например, в Vega-Lite всё хорошо, а в Vega 2 (код, редактор) при таких же значениях проблема. — putnik 20:49, 21 августа 2018 (UTC)[ответить]


Похоже, я разобрался, в чём дело. Текущая версия расширения Graph использует библиотеку d3 версии 3.5.17. А как раз в следующей её версии, 4.0.0, было полное обновление алгоритма monotone (см. здесь), в том числе, видимо, был исправлен и этот баг, но в Graph это уже не попало. Землеройкин (обс.) 13:19, 26 августа 2018 (UTC)[ответить]
  1. Список населенных мест Дальневосточного края — 229 с.
  2. Данные Всероссийской переписи населения 2002 года: таблица № 02c. Численность населения и преобладающая национальность по каждому сельскому населённому пункту.М.: Росстат, 2004.
  3. Карта-буклет Лазовский район ФГУП 2007г.
  4. Лазовский район 1.01.2008
  5. Приморский край. Всероссийская перепись населения 2010 года (по состоянию на 14 октября 2010 года)
Downgrade Counter