Słownik metodologiczny · Przygotowanie danych

Dane uporządkowane (tidy data) – jak ułożyć tabelę do analizy

Jedna zmienna w kolumnie, jedna obserwacja w wierszu. Pokazujemy, jak rozpoznać nieuporządkowany arkusz, jak go poprawić w R i czym tidy data różni się od formatu długiego.

W skrócie: Dane uporządkowane (tidy data) mają każdą zmienną w osobnej kolumnie, każdą obserwację w osobnym wierszu i każdy typ jednostki w osobnej tabeli. Porządkuj dane skryptem, nie ręcznie, a surowy plik zostaw bez zmian.

Co to są dane uporządkowane?

Dane uporządkowane (ang. tidy data) to tabela, w której każda zmienna ma własną kolumnę, każda obserwacja – własny wiersz, a każdy typ jednostki obserwacji – osobną tabelę. Zasady te sformułował Wickham (2014), pokazując, że taka struktura upraszcza przekształcanie danych, modelowanie i rysowanie wykresów. W R zakładają ją pakiety tidyr, dplyr i ggplot2.

Jak rozpoznać nieuporządkowane dane

  • Wartości zmiennej w nazwach kolumn, np. stres_przed i stres_po: moment pomiaru jest zmienną, a nie częścią nazwy.
  • Dwie informacje w jednej komórce, np. „E_K” zamiast osobnych kolumn grupy i płci.
  • Informacja zapisana formatowaniem, np. kolorem komórki, scalonymi nagłówkami albo kilkoma tabelkami na jednym arkuszu. Broman i Woo (2018) zalecają jeden prostokąt danych z jednym wierszem nagłówka i jedną informacją w komórce.

Przykład

Trzy osoby wypełniły skale stresu i lęku przed treningiem i po nim. Arkusz ma 3 wiersze i 6 kolumn, a grupa i płeć są sklejone. Po rozdzieleniu tej kolumny i przestawieniu pomiarów tabela ma 6 wierszy (osoba × pomiar) i 6 kolumn: id, grupa, plec, pomiar, stres, lek. Teraz jedna linijka liczy średni stres w każdej grupie i pomiarze, np. 33 przed i 26.5 po treningu w grupie E.

To nie to samo co format długi i szeroki. Tabela szeroka, z jednym wierszem na osobę, też bywa uporządkowana, jeśli jednostką obserwacji jest osoba. Format długi wybierasz pod konkretną analizę, np. model wielopoziomowy, a zasady tidy data mówią, jak nazwać i rozdzielić zmienne w każdym z formatów.

Jak opisać w pracy

Dane z arkusza przekształcono do postaci uporządkowanej (jedna zmienna w kolumnie, jedna obserwacja w wierszu) w R za pomocą pakietów tidyr i dplyr. Surowe pliki pozostawiono bez zmian, a wszystkie przekształcenia zapisano w skrypcie dołączonym do pracy.

Na co uważać

  • Nie poprawiaj surowego arkusza ręcznie. Przekształcenia zapisz w skrypcie, a znaczenie kolumn i kodów – w książce kodowej.
  • Nazwy kolumn pisz bez spacji i polskich znaków, z jednym separatorem, np. stres_przed. Wtedy da się je rozdzielić automatycznie.
  • Typy zmiennych ustaw po uporządkowaniu tabeli; opisuje to hasło kodowanie zmiennych w R.

Cały proces od pliku do pierwszej analizy pokazuje wpis R dla początkujących, a przygotowanie danych z formularzy – Dane z Google Forms i LimeSurvey.

Przykład reprodukowalny

Porządkowanie danych w R

Kod rozdziela sklejoną kolumnę funkcją separate(), przestawia pomiary funkcją pivot_longer() i od razu liczy średnie w grupach.

Z arkusza do tabeli uporządkowanej

Dane wejściowe: trzy osoby, stres i lęk przed treningiem i po nim (dane przykładowe).

Co odczytać: tabelę po przekształceniu, wymiary przed i po oraz średni stres w grupach i pomiarach.

R
suppressPackageStartupMessages({library(tidyr); library(dplyr)})
surowe <- data.frame(id = c(1, 2, 3),
                     grupa_plec  = c("E_K", "K_M", "E_M"),   # dwie informacje w jednej komórce
                     stres_przed = c(31, 27, 35), stres_po = c(24, 26, 29),
                     lek_przed   = c(18, 15, 22), lek_po   = c(14, 15, 17))
uporz <- surowe |>
  separate(grupa_plec, into = c("grupa", "plec"), sep = "_") |>          # jedna zmienna = jedna kolumna
  pivot_longer(stres_przed:lek_po, names_to = c(".value", "pomiar"),
               names_sep = "_")                                         # pomiar to zmienna, nie część nazwy
uporz
dim(surowe); dim(uporz)
uporz |> group_by(grupa, pomiar) |> summarise(M_stres = mean(stres), .groups = "drop")
Wynik w R
# A tibble: 6 × 6
     id grupa plec  pomiar stres   lek
  <dbl> <chr> <chr> <chr>  <dbl> <dbl>
1     1 E     K     przed     31    18
2     1 E     K     po        24    14
3     2 K     M     przed     27    15
4     2 K     M     po        26    15
5     3 E     M     przed     35    22
6     3 E     M     po        29    17
[1] 3 6
[1] 6 6
# A tibble: 4 × 3
  grupa pomiar M_stres
  <chr> <chr>    <dbl>
1 E     po        26.5
2 E     przed     33  
3 K     po        26  
4 K     przed     27  

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 z pakietami tidyr 1.3.2 i dplyr 1.2.0.

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. tidyr (wersja 1.3.2): Wickham, H., Vaughan, D., & Girlich, M. (2025). tidyr: Tidy messy data [R package]. https://doi.org/10.32614/CRAN.package.tidyr
  3. dplyr (wersja 1.2.0): Wickham, H., François, R., Henry, L., Müller, K., & Vaughan, D. (2026). dplyr: A grammar of data manipulation [R package]. https://doi.org/10.32614/CRAN.package.dplyr

Najczęstsze pytania

Czy tidy data to to samo co format długi?

Nie. Format długi to jeden ze sposobów ułożenia pomiarów powtarzanych. Tabela szeroka z jednym wierszem na osobę też może być uporządkowana, jeśli jednostką obserwacji jest osoba.

Jak uporządkować dane z arkusza w R?

Najczęściej wystarczą funkcje z pakietu tidyr: pivot_longer() przenosi wartości z nazw kolumn do zmiennej, a separate() rozdziela sklejone informacje.

Dlaczego jedna komórka powinna zawierać jedną informację?

Bo program nie odczyta znaczenia sklejonych wartości, np. „E_K”. Osobne kolumny grupy i płci da się od razu filtrować, liczyć i wstawiać do modeli.

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Broman, K. W., & Woo, K. H. (2018). Data organization in spreadsheets. The American Statistician, 72(1), 2–10. https://doi.org/10.1080/00031305.2017.1375989 ● Otwarty dostęp: pełny tekst
  2. Wickham, H. (2014). Tidy data. Journal of Statistical Software, 59(10), 1–23. https://doi.org/10.18637/jss.v059.i10 ● Otwarty dostęp

Cytowania BibTeX

@article{broman2018data, author={Broman, Karl W. and Woo, Kara H.}, title={{Data organization in spreadsheets}}, journal={The American Statistician}, year={2018}, volume={72}, number={1}, pages={2--10}, doi={10.1080/00031305.2017.1375989}}
@article{wickham2014tidy, author={Wickham, Hadley}, title={{Tidy data}}, journal={Journal of Statistical Software}, year={2014}, volume={59}, number={10}, pages={1--23}, doi={10.18637/jss.v059.i10}}
R