<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%3AGREL_clue</id>
	<title>Шаблон:GREL clue - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%3AGREL_clue"/>
	<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:GREL_clue&amp;action=history"/>
	<updated>2026-04-21T10:22:34Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:GREL_clue&amp;diff=46258&amp;oldid=prev</id>
		<title>Patarakin в 16:58, 16 апреля 2026</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:GREL_clue&amp;diff=46258&amp;oldid=prev"/>
		<updated>2026-04-16T16:58:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 19:58, 16 апреля 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Строка 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Преобразовать текстовую дату в тип Date (для временных рядов)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Преобразовать текстовую дату в тип Date (для временных рядов)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Меню столбца с датой → &#039;&#039;&#039;Edit cells → Common transforms → To date&#039;&#039;&#039; (выбор GREL не нужен, но важно понимать, что OpenRefine внутри применяет преобразование типа)  &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[datacarpentry.github](https://datacarpentry.github.io/openrefine-socialsci/02-working-with-openrefine.html)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Меню столбца с датой → &#039;&#039;&#039;Edit cells → Common transforms → To date&#039;&#039;&#039; (выбор GREL не нужен, но важно понимать, что OpenRefine внутри применяет преобразование типа)   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| (автоматическое преобразование ISO‑строки, например `&amp;quot;2022-07-06T06:37:06Z&amp;quot;`)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| (автоматическое преобразование ISO‑строки, например `&amp;quot;2022-07-06T06:37:06Z&amp;quot;`)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key digida:diff:1.41:old-46257:rev-46258:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Patarakin</name></author>
	</entry>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:GREL_clue&amp;diff=46257&amp;oldid=prev</id>
		<title>Patarakin: Новая страница: «{| class=&quot;wikitable&quot; ! Контекст: что хотим сделать ! Где и в каком режиме ! Пример Expression (GREL) |- | Преобразовать текстовую дату в тип Date (для временных рядов) | Меню столбца с датой → &#039;&#039;&#039;Edit cells → Common transforms → To date&#039;&#039;&#039; (выбор GREL не нужен, но важно понимать, что OpenRefine внутри прим...»</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:GREL_clue&amp;diff=46257&amp;oldid=prev"/>
		<updated>2026-04-16T16:57:50Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «{| class=&amp;quot;wikitable&amp;quot; ! Контекст: что хотим сделать ! Где и в каком режиме ! Пример Expression (GREL) |- | Преобразовать текстовую дату в тип Date (для временных рядов) | Меню столбца с датой → &amp;#039;&amp;#039;&amp;#039;Edit cells → Common transforms → To date&amp;#039;&amp;#039;&amp;#039; (выбор GREL не нужен, но важно понимать, что OpenRefine внутри прим...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Контекст: что хотим сделать&lt;br /&gt;
! Где и в каком режиме&lt;br /&gt;
! Пример Expression (GREL)&lt;br /&gt;
|-&lt;br /&gt;
| Преобразовать текстовую дату в тип Date (для временных рядов)&lt;br /&gt;
| Меню столбца с датой → &amp;#039;&amp;#039;&amp;#039;Edit cells → Common transforms → To date&amp;#039;&amp;#039;&amp;#039; (выбор GREL не нужен, но важно понимать, что OpenRefine внутри применяет преобразование типа)  [datacarpentry.github](https://datacarpentry.github.io/openrefine-socialsci/02-working-with-openrefine.html)&lt;br /&gt;
| (автоматическое преобразование ISO‑строки, например `&amp;quot;2022-07-06T06:37:06Z&amp;quot;`)&lt;br /&gt;
&lt;br /&gt;
— отдельное выражение не вводим&lt;br /&gt;
|-&lt;br /&gt;
| Вытащить год из даты в новый столбец (переменная времени \(t\))&lt;br /&gt;
| Меню столбца с датой → &amp;#039;&amp;#039;&amp;#039;Edit column → Add column based on this column…&amp;#039;&amp;#039;&amp;#039; → язык: GREL  &lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
value.toDate().toString(&amp;quot;yyyy&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Создаёт столбец `year` с годом, используемым как временной индекс&lt;br /&gt;
|-&lt;br /&gt;
| Построить строковое представление «год‑месяц» (для месячных рядов)&lt;br /&gt;
| Меню столбца с датой → &amp;#039;&amp;#039;&amp;#039;Add column based on this column…&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
value.toDate().toString(&amp;quot;yyyy-MM&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Например, &amp;quot;2024-03&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Очистить пробелы в начале/конце и узнать длину строки&lt;br /&gt;
| Меню столбца с текстом → &amp;#039;&amp;#039;&amp;#039;Edit cells → Transform…&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
value.trim().length()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Полезно для диагностики «грязных» строк, где есть лишние пробелы &lt;br /&gt;
|-&lt;br /&gt;
| Заменить подстроку (очистка категорий)&lt;br /&gt;
| Меню столбца → &amp;#039;&amp;#039;&amp;#039;Edit cells → Transform…&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
value.replace(&amp;quot;old&amp;quot;,&amp;quot;new&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Например, объединить разные варианты написания категорий &lt;br /&gt;
|-&lt;br /&gt;
| Объединить значения двух столбцов (конструирование идентификатора панели)&lt;br /&gt;
| Меню любого из столбцов → &amp;#039;&amp;#039;&amp;#039;Edit column → Add column based on this column…&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
cells[&amp;quot;user&amp;quot;].value + &amp;quot;_&amp;quot; + cells[&amp;quot;board_id&amp;quot;].value&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Создаёт composite key вида &amp;quot;user_board&amp;quot;, удобный для группировок&lt;br /&gt;
|-&lt;br /&gt;
| Превратить JSON‑массив в строку с разделителем (подготовка к Split multi-valued cells)&lt;br /&gt;
| Меню столбца с массивом (например, idBoards) → &amp;#039;&amp;#039;&amp;#039;Edit cells → Transform…&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
value.join(&amp;quot;|&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
После этого используем &amp;#039;&amp;#039;&amp;#039;Edit cells → Split multi-valued cells…&amp;#039;&amp;#039;&amp;#039; с разделителем &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Посчитать количество строк с той же парой user–board (агрегация по ключу)&lt;br /&gt;
| В режиме Rows, любой столбец → &amp;#039;&amp;#039;&amp;#039;Edit column → Add column based on this column…&amp;#039;&amp;#039;&amp;#039;  &lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
length(&lt;br /&gt;
  filter(&lt;br /&gt;
    rows,&lt;br /&gt;
    r,&lt;br /&gt;
    r.cells[&amp;quot;user&amp;quot;].value == cells[&amp;quot;user&amp;quot;].value &amp;amp;&amp;amp;&lt;br /&gt;
    r.cells[&amp;quot;board_id&amp;quot;].value == cells[&amp;quot;board_id&amp;quot;].value&lt;br /&gt;
  )&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Даёт частоту пары (аналог COUNT(*) GROUP BY user, board_id)&lt;br /&gt;
|-&lt;br /&gt;
| Посчитать сумму числового показателя по user–board (например, events)&lt;br /&gt;
| Аналогично: &amp;#039;&amp;#039;&amp;#039;Add column based on this column…&amp;#039;&amp;#039;&amp;#039;, предварительно столбец events → To number  &lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
sum(&lt;br /&gt;
  forEach(&lt;br /&gt;
    filter(&lt;br /&gt;
      rows,&lt;br /&gt;
      r,&lt;br /&gt;
      r.cells[&amp;quot;user&amp;quot;].value == cells[&amp;quot;user&amp;quot;].value &amp;amp;&amp;amp;&lt;br /&gt;
      r.cells[&amp;quot;board_id&amp;quot;].value == cells[&amp;quot;board_id&amp;quot;].value&lt;br /&gt;
    ),&lt;br /&gt;
    r, r.cells[&amp;quot;events&amp;quot;].value&lt;br /&gt;
  )&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Аналог SUM(events) GROUP BY user, board_id&lt;br /&gt;
|-&lt;br /&gt;
| Фильтровать строки, где значение содержит подстроку (кастомный facet)&lt;br /&gt;
| Меню столбца → &amp;#039;&amp;#039;&amp;#039;Facet → Custom text facet…&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
| &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
value.contains(&amp;quot;wiki_edit&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Возвращает true/false для фасета, удобно для выделения определённых типов событий&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Patarakin</name></author>
	</entry>
</feed>