Telegram Group & Telegram Channel
Как неправильно хранить данные в таблицах?

Недели три назад в интернете форсился мем про хранение "параметров" людей в Excel-таблицах (примеры в комментариях). Я не поддерживаю такой утилитарный подход к окружающим, но оставляя за скобками морально-этические аспекты, хотелось бы рассказать, почему с технической стороны это было организовано неверно.
Основная претензия в том, что переменные (параметры) записаны в строках, а наблюдения (в данном случае люди) в столбцах. Это влечет за собой массу неудобств.

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

Во-вторых, для анализа подобных таблиц средствами языков программирования критично иметь одинаковый тип данных в столбцах. К примеру, в R это вытекает из структуры датафрейма (поскольку столбцы – это вектора, в которых требуется одинаковый тип данных).
Для переменных (признаков, параметров) обычно гарантируется одинаковый тип данных, в то время как для наблюдений – вовсе нет. Следовательно, в R при загрузке такой таблицы, все столбцы приведутся к наиболее общему типу – скорее всего строковому, что также усложнит или сделает невозможным анализ.

В-третьих, не в контексте конкретно таких таблиц, можно отметить, что в Excel-таблицах формата .xlsx максимальное количество столбцов: 16384 (2^14), в то время как строк: 1048576 (2^20). Следовательно, при заполнении наблюдений по столбцам, место закончится гораздо раньше.
В качестве иллюстрации я хотела привести пример, как в 2020 году британские медики заполняли новые случаи Covid-19 в эксель таблицу по столбцам, в результате чего новые случаи ковид просто не влезли! Однако я почитала еще, и оказалось, что проблема была немного другая: данные хранили в строках (ура!), но вместо .xlsx использовали устаревший формат .xls, который поддерживает только 65536 (2^16) строк. Похоже, что медицинские центры присылали данные в формате .csv, где нет ограничения на количество строк, в то время как министерство здравоохранения (Public Health England) открывало их в .xls формате, и все строки после 65536 для них исчезали. Таким образом потерялось около 16 тысяч положительных результатов ковид-тестов (а сколько всего было потерянных строк, не сообщается).

Вообще хранение большого количества строк в Excel в целом вызывает сомнение, но это отдельная тема, пока что отмечу, как у генетиков некоторые названия генов (MARCH1, SEPT2) превращались в даты (например описано здесь).

UPD: в комментариях дополнили про недостатки экселя:
- Превращение чисел в даты, что сильно раздражает и с этим сталкиваются не только генетики
- Привязка к региональным разделителям (по умолчанию запятая как десятичный разделитель, что приходится менять)
- Отсутствие стандартного обозначения пропущенных значений

Итак, использовать эксель для анализа и хранения данных возможно не лучшая затея, однако если вы все же это делаете, то храните наблюдения в строках, а переменные в столбцах, это придумано не случайно!

#stat_humor #data #excel



group-telegram.com/stats_for_science/71
Create:
Last Update:

Как неправильно хранить данные в таблицах?

Недели три назад в интернете форсился мем про хранение "параметров" людей в Excel-таблицах (примеры в комментариях). Я не поддерживаю такой утилитарный подход к окружающим, но оставляя за скобками морально-этические аспекты, хотелось бы рассказать, почему с технической стороны это было организовано неверно.
Основная претензия в том, что переменные (параметры) записаны в строках, а наблюдения (в данном случае люди) в столбцах. Это влечет за собой массу неудобств.

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

Во-вторых, для анализа подобных таблиц средствами языков программирования критично иметь одинаковый тип данных в столбцах. К примеру, в R это вытекает из структуры датафрейма (поскольку столбцы – это вектора, в которых требуется одинаковый тип данных).
Для переменных (признаков, параметров) обычно гарантируется одинаковый тип данных, в то время как для наблюдений – вовсе нет. Следовательно, в R при загрузке такой таблицы, все столбцы приведутся к наиболее общему типу – скорее всего строковому, что также усложнит или сделает невозможным анализ.

В-третьих, не в контексте конкретно таких таблиц, можно отметить, что в Excel-таблицах формата .xlsx максимальное количество столбцов: 16384 (2^14), в то время как строк: 1048576 (2^20). Следовательно, при заполнении наблюдений по столбцам, место закончится гораздо раньше.
В качестве иллюстрации я хотела привести пример, как в 2020 году британские медики заполняли новые случаи Covid-19 в эксель таблицу по столбцам, в результате чего новые случаи ковид просто не влезли! Однако я почитала еще, и оказалось, что проблема была немного другая: данные хранили в строках (ура!), но вместо .xlsx использовали устаревший формат .xls, который поддерживает только 65536 (2^16) строк. Похоже, что медицинские центры присылали данные в формате .csv, где нет ограничения на количество строк, в то время как министерство здравоохранения (Public Health England) открывало их в .xls формате, и все строки после 65536 для них исчезали. Таким образом потерялось около 16 тысяч положительных результатов ковид-тестов (а сколько всего было потерянных строк, не сообщается).

Вообще хранение большого количества строк в Excel в целом вызывает сомнение, но это отдельная тема, пока что отмечу, как у генетиков некоторые названия генов (MARCH1, SEPT2) превращались в даты (например описано здесь).

UPD: в комментариях дополнили про недостатки экселя:
- Превращение чисел в даты, что сильно раздражает и с этим сталкиваются не только генетики
- Привязка к региональным разделителям (по умолчанию запятая как десятичный разделитель, что приходится менять)
- Отсутствие стандартного обозначения пропущенных значений

Итак, использовать эксель для анализа и хранения данных возможно не лучшая затея, однако если вы все же это делаете, то храните наблюдения в строках, а переменные в столбцах, это придумано не случайно!

#stat_humor #data #excel

BY Статистика и R в науке и аналитике


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/stats_for_science/71

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

The last couple days have exemplified that uncertainty. On Thursday, news emerged that talks in Turkey between the Russia and Ukraine yielded no positive result. But on Friday, Reuters reported that Russian President Vladimir Putin said there had been some “positive shifts” in talks between the two sides. Sebi said data, emails and other documents are being retrieved from the seized devices and detailed investigation is in progress. Telegram, which does little policing of its content, has also became a hub for Russian propaganda and misinformation. Many pro-Kremlin channels have become popular, alongside accounts of journalists and other independent observers. Although some channels have been removed, the curation process is considered opaque and insufficient by analysts. Again, in contrast to Facebook, Google and Twitter, Telegram's founder Pavel Durov runs his company in relative secrecy from Dubai.
from us


Telegram Статистика и R в науке и аналитике
FROM American