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

Недели три назад в интернете форсился мем про хранение "параметров" людей в 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



tgoop.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 в науке и аналитике


Share with your friend now:
tgoop.com/stats_for_science/71

View MORE
Open in Telegram


Telegram News

Date: |

Content is editable within two days of publishing A vandalised bank during the 2019 protest. File photo: May James/HKFP. Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. 5Telegram Channel avatar size/dimensions With Bitcoin down 30% in the past week, some crypto traders have taken to Telegram to “voice” their feelings.
from us


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