Мова: Українська
Відсутні, пусті або незастосовні дані є важливим аспектом для будь-якої системи управління даними. У цій статті детально описано, як ActivityInfo обробляє «відсутність» даних і як це співвідноситься з іншими системами та мовами програмування.
Вступ
ActivityInfo, як і багато інших систем управління даними, працює виключно з «типізованими» значеннями. Усі поля та вирази формул в ActivityInfo мають тип, який визначає діапазон допустимих значень. Поле кількості ніколи не може мати значення «Боб», а поле дати ніколи не матиме значення 42. Те ж саме стосується вектора в R, стовпця в реляційній базі даних або змінної в SPSS.
Однак, існує багато причин, чому значення може бути відсутнім:
- Поле може бути нерелевантним для кожного запису або рядка. Наприклад, може бути так, що лише біженці мають реєстраційний номер УВКБ ООН.
- Поле може не бути обов'язковим. Не всі респонденти анкети можуть мати номер мобільного телефону.
- Поле може бути додано після початку збору даних, і ми не маємо інформації про раніше зібрані дані.
- Респондент опитування може відмовитися відповідати на певні запитання або може не знати відповіді.
- Може виникнути помилка при обчисленні значення, наприклад, якщо ви ділите число на нуль або надаєте недійсний регулярний вираз для
REGEXMATCH
З цих причин кожен тип формули ActivityInfo включає в себе спеціальне «пусте» значення. Числовий вираз, наприклад, може дорівнювати будь-якому дійсному числу або бути пустим. Вираз дати може дорівнювати будь-якій даті між 1000 р. н.е. та 9999 р. н.е. або бути пустим.
Обчислення з пустими значеннями
У формулах ActivityInfo ви можете перевірити наявність пустих значень за допомогою ISBLANK. Але пусті значення також можуть потрапляти в обчислення. Наприклад, у вас може бути форма з двома полями кількості для підрахунку COUNT_WOMEN та COUNT_MEN, а також обчислюване поле TOTAL з формулою COUNT_WOMEN + COUNT_MEN.
Що станеться, якщо деякі записи містять пусті значення для WOMEN, MEN або обох? Це вибір дизайну: в Excel пусті клітинки розглядаються як нулі в контексті арифметичних операцій. Однак у SQL NULL плюс будь-яке інше число дорівнює NULL, а в R NA плюс будь-яке число все ще є NA.
У більшості випадків ActivityInfo дотримується конвенції Excel, яку ми вважаємо більш поблажливою для нетехнічних користувачів. Тож для наведеного вище прикладу результати можуть виглядати так:
| Медичний центр | WOMEN | MEN | WOMEN + MEN | ISBLANK(WOMEN + MEN) |
|---|---|---|---|---|
| A | 300 | 150 | 450 | Хибність |
| B | 160 | 160 | Хибність | |
| C | 75 | 75 | Хибність | |
| D | Істина | |||
| E | 220 | 90 | 310 | Хибність |
Як видно з таблиці вище, обчислюване поле TOTAL є пустим лише тоді, коли і WOMEN, і MEN є пустими.
Пусті текстові рядки
У деяких мовах програмування існує різниця між пустим текстовим рядком ("") та NULL або відсутнім значенням. Наприклад, у SQL "" IS NULL є хибним, а в R is.na("") також є хибним.
Ця відмінність часто може спантеличити користувачів без досвіду програмування, тому ActivityInfo уникає цієї відмінності: пустий текстовий рядок "" ідентичний пустому текстовому значенню:
ISBLANK("") == Істина
Під час збору даних будь-який ввід у текстове поле буде очищено від пробілів на початку та в кінці. Це означає, що якщо ви введете лише пробіли в текстове поле, значення поля буде пустим:
Пробіли на початку та в кінці не видаляються зі значень у формулах, це означає, що текст, який містить лише пробіли, не вважається пустим:
ISBLANK(" ") == Хибність