Hadley Wickham napisał w zeszłym roku w JSS gwiezdny artykuł zatytułowany „Tidy Data” ( link ) na temat manipulacji danymi i doprowadzenia danych do stanu „optymalnego” w celu przeprowadzenia analizy. Zastanawiałem się jednak, jakie były najlepsze praktyki w zakresie prezentacji danych tabelarycznych w środowisku pracy? Powiedzmy, że twój współpracownik prosi cię o przekazanie mu pewnych danych. Z jakich ogólnych zasad korzystasz przy tworzeniu tych danych? Czy wytyczne w „Tidy Data” mają zastosowanie również w przypadkach, w których udostępniasz dane profesjonalistom niebędącym danymi? Oczywiście jest to bardzo specyficzne dla kontekstu, ale pytam o „najlepsze praktyki” na wysokim szczeblu.
12
Odpowiedzi:
Jak można się spodziewać po Hadleyu, jego artykuł zawiera dobrą definicję uporządkowanych danych i zgadzam się z prawie wszystkim w jego artykule i uważam, że jest on nie tylko ważny dla „specjalistów od danych”. Jednak niektóre z jego punktów są stosunkowo łatwe do naprawienia (np. W przypadku pakietów, których autorem jest autor), jeśli uniknie się bardziej podstawowych problemów. Większość tych problemów wynika z powszechnego korzystania z programu Excel. Excel jest cennym narzędziem i ma swoje zalety, ale niektóre jego funkcje powodują problemy dla analityków danych.
Niektóre punkty (z moich doświadczeń):
Prawdopodobnie jest kilka dodatkowych punktów, które nie przyszły mi do głowy.
źródło
Po pierwsze, zwykle to ja otrzymuję dane. Może to brzmieć jak moja lista życzeń.
Dlatego najważniejsze jest: porozmawiaj z tym, który zamierza przeanalizować dane.
Rzuciłem okiem na papier: wiele z tego, co pisze Hadley, można streścić poprzez „znormalizowanie relacyjnej bazy danych”.
Ale wspomina również, że w zależności od tego, co się faktycznie dzieje, rozsądne może być posiadanie tej samej zmiennej w postaci długiej lub szerokiej.
Istnieją jednak pewne praktyczne zalety nienormalizowanego wyświetlania / dystrybucji danych:
O wiele łatwiej jest sprawdzić, czy dane są kompletne .
Połączone tabele jak w znormalizowanej relacyjnej bazie danych są OK, jeśli dane faktycznie znajdują się w bazie danych (w sensie programowym). Tam możesz wprowadzić ograniczenia zapewniające kompletność. Jeśli dane są wymieniane w postaci kilku tabel, w praktyce łącza będą bałaganem.
Normalizacja bazy danych usuwa redundancję. W prawdziwym życiu laboratoryjnym nadmiarowość służy do podwójnego sprawdzania integralności.
Dlatego zbędne informacje nie powinny być usuwane zbyt wcześnie.
Rozmiar pamięci / dysku wydaje się obecnie mniejszym problemem. Ale rośnie również ilość danych, które wytwarzają nasze instrumenty.
Pracuję z instrumentem, który może z łatwością wytworzyć 250 GB wysokiej jakości danych w ciągu kilku godzin. Te 250 GB ma format macierzy. Rozwinięcie go do postaci długiej spowoduje wysadzenie go w powietrze co najmniej 4 razy: każdy z wymiarów tablicy (boczne xiy oraz długość fali λ) stanie się kolumną plus jedna kolumna dla intensywności). Ponadto, moim pierwszym krokiem podczas analizy danych byłoby przerzucenie znormalizowanych danych o długiej formie z powrotem do postaci o szerokim spektrum.
Prace porządkowe omawiane przez te punkty normalizacyjne są uciążliwe i niezbyt przyjemne. Jednak w praktyce zwykle spędzam znacznie więcej czasu na innych aspektach sprzątania
Zapewnienie integralności i kompletności danych w praktyce stanowi dużą część mojej pracy związanej z porządkowaniem danych.
Dane nie są w łatwo czytelnym formacie / przełączają się między nieco innymi formatami:
Otrzymuję dużo danych w postaci wielu plików i zwykle niektóre informacje są przechowywane w nazwie pliku i / lub ścieżce: oprogramowanie urządzenia i / lub utworzone formaty plików nie pozwalają na spójne dodawanie informacji, więc mieć dodatkową tabelę (jak w relacyjnej bazie danych), która łączy meta informacje z nazwą pliku lub nazwa pliku koduje ważne informacje.
Literówki lub niewielkie zmiany w strukturze nazw plików powodują tutaj wiele problemów.
źródło