Słownik metodologiczny · Przygotowanie danych

Format długi i szeroki danych – czym się różnią i jak je przekształcić?

W formacie szerokim jeden wiersz to osoba, w długim – pojedynczy pomiar. Pokazujemy tę samą tabelę w obu układach, wyjaśniamy, którego potrzebuje ANOVA z powtarzanymi pomiarami, a którego model mieszany, i jak zmienić układ w R.

Strona główna / Słownik / Format długi i szeroki
W skrócie: Format szeroki ma jeden wiersz na osobę i osobną kolumnę dla każdego pomiaru, a format długi – jeden wiersz na każdy pomiar. Dane wpisuj w szerokim, a przed modelem mieszanym przestaw je do długiego, np. funkcją pivot_longer() w R.

Co to jest format długi i szeroki danych?

Format szeroki (ang. wide format) to układ danych, w którym jeden wiersz to jedna osoba, a każdy pomiar tej samej zmiennej ma własną kolumnę. Format długi (ang. long format) zapisuje każdy pomiar w osobnym wierszu: jedna kolumna mówi, kogo dotyczy, druga – w jakim warunku lub momencie go wykonano, trzecia zawiera wynik. Rozróżnienie ma znaczenie, gdy tę samą osobę mierzysz kilka razy, np. w eksperymencie z czynnikiem wewnątrzobiektowym albo w badaniu przed i po interwencji.

Oba układy zawierają te same informacje. Wickham (2014) nazywa dane uporządkowanymi, gdy każda zmienna jest kolumną, a każda obserwacja – wierszem; takie dane łatwo przekształcać, modelować i pokazywać na wykresach. Ankiety wygodniej wpisuje się w formacie szerokim, a do wielu analiz trzeba je przestawić do długiego.

Przykład: ta sama tabela w obu formatach

Trzydzieści osób wykonało zadanie Stroopa w warunku zgodnym, neutralnym i niezgodnym; mierzono czas reakcji w milisekundach (dane symulowane). Format szeroki ma 30 wierszy i 4 kolumny, długi – 90 wierszy i 3 kolumny.

Format szeroki: pierwsze trzy osoby
idrt_zgodnyrt_neutralnyrt_niezgodny
1618641723
2594686764
3647697741
Format długi: pierwsze dwie osoby
idwarunekrt
1zgodny618
1neutralny641
1niezgodny723
2zgodny594
2neutralny686
2niezgodny764

U dwóch osób zabrakło pomiaru w warunku niezgodnym. W formacie szerokim to dwie puste komórki, w długim – dwa wiersze bez wyniku.

Który format do jakiej analizy?

  • ANOVA z powtarzanymi pomiarami w SPSS korzysta z formatu szerokiego: procedura GLM Repeated Measures wymaga osobnej zmiennej dla każdego powtórzenia pomiaru (IBM Corp., b.d.). W R ta sama analiza, np. w pakiecie afex, przyjmuje dane długie.
  • Model mieszany, czyli model wielopoziomowy, wymaga formatu długiego. Każdy wiersz to pomiar zagnieżdżony w osobie, a kolumna id pozwala oszacować efekty losowe osób.

Od formatu zależy też los braków. Klasyczna ANOVA z powtarzanymi pomiarami analizuje tylko osoby z kompletem pomiarów – w przykładzie 28 z 30. Model mieszany wykorzystuje wszystkie dostępne pomiary (Gueorguieva i Krystal, 2004), tu 88 z 90. Oba podejścia porównujemy we wpisie ANOVA z powtarzanymi pomiarami czy model mieszany?

Jak zapisać w pracy

W opisie analizy danych wystarczy jedno zdanie:

Dane z zadania Stroopa (30 osób × 3 warunki) przekształcono z formatu szerokiego do długiego (90 wierszy) funkcją pivot_longer() z pakietu tidyr 1.3.2; model mieszany objął 88 pomiarów, a dwie osoby z jednym brakującym pomiarem pozostały w analizie.
Przykład reprodukowalny

Przykład w R

Kod tworzy dane z przykładu, przestawia je funkcją pivot_longer() do formatu długiego i wraca do szerokiego funkcją pivot_wider(). Liczby w tekście i w tabelach pochodzą z tego kodu.

Z formatu szerokiego do długiego i z powrotem

Dane wejściowe: czas reakcji 30 osób w trzech warunkach zadania Stroopa (dane symulowane, set.seed(5501)).

Co odczytać: wymiary obu tabel, ich pierwsze wiersze, liczbę osób z kompletem pomiarów, liczbę dostępnych pomiarów i to, czy powrót do formatu szerokiego niczego nie zmienił.

R
library(tidyr)
set.seed(5501)
osoba <- rnorm(30, 0, 55)                                  # stałe różnice tempa między osobami
szeroki <- data.frame(id = 1:30,
                      rt_zgodny    = round(610 + osoba + rnorm(30, 0, 30)),
                      rt_neutralny = round(640 + osoba + rnorm(30, 0, 30)),
                      rt_niezgodny = round(700 + osoba + rnorm(30, 0, 35)))
szeroki$rt_niezgodny[c(7, 19)] <- NA                       # dwa brakujące pomiary
dlugi <- pivot_longer(szeroki, starts_with("rt_"), names_to = "warunek",
                      names_prefix = "rt_", values_to = "rt")
dim(szeroki); dim(dlugi)                                   # wiersze i kolumny
head(szeroki, 3); head(dlugi, 6)
c(osoby_z_kompletem = sum(complete.cases(szeroki)), pomiary = sum(!is.na(dlugi$rt)))
z_powrotem <- pivot_wider(dlugi, names_from = warunek, values_from = rt, names_prefix = "rt_")
identical(as.data.frame(z_powrotem), szeroki)              # powrót bez utraty informacji
Wynik w R
[1] 30  4
[1] 90  3
  id rt_zgodny rt_neutralny rt_niezgodny
1  1       618          641          723
2  2       594          686          764
3  3       647          697          741
# A tibble: 6 × 3
     id warunek      rt
  <int> <chr>     <dbl>
1     1 zgodny      618
2     1 neutralny   641
3     1 niezgodny   723
4     2 zgodny      594
5     2 neutralny   686
6     2 niezgodny   764
osoby_z_kompletem           pomiary 
               28                88 
[1] TRUE

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3. W tym samym skrypcie sprawdziliśmy, że funkcja aov_ez() z pakietu afex (wersja 1.5.1) usuwa z ANOVA obie osoby z brakiem, a model lmer() z pakietu lme4 (wersja 2.0.1) obejmuje 88 pomiarów od 30 osób.

  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 version 1.3.2) [Computer software]. https://doi.org/10.32614/CRAN.package.tidyr

Na co uważać

  • Opis próby z formatu długiego. Wiek czy płeć powtarzają się w nim w każdym wierszu osoby, więc liczebność próby wyjdzie 90 zamiast 30. Próbę opisuj na podstawie formatu szerokiego.
  • Brak kolumny z identyfikatorem osoby. Bez niej nie wrócisz do formatu szerokiego ani nie dopasujesz modelu mieszanego.
  • Niespójne nazwy kolumn. Kolumn rt_zgodny, RT_neutr i niezg nie przestawisz jednym poleceniem. Schemat nazw ustal przed wpisywaniem danych i zapisz w książce kodowej (zob. też poradnik Jak przygotować bazę danych do analizy).

Najczęstsze pytania

Jak zamienić format szeroki na długi w R?

Użyj funkcji pivot_longer() z pakietu tidyr: wskaż kolumny pomiarów, np. starts_with("rt_"), nazwę nowej kolumny z warunkiem (names_to) i kolumny z wynikiem (values_to). Odwrotną zmianę wykonuje pivot_wider().

Jakiego formatu danych wymaga model mieszany?

Formatu długiego: każdy pomiar to osobny wiersz z identyfikatorem osoby, warunkiem lub czasem pomiaru i wynikiem. Dzięki temu model korzysta także z pomiarów osób, którym część pomiarów brakuje.

W jakim formacie przygotować dane do ANOVA z powtarzanymi pomiarami w SPSS?

W szerokim. Procedura GLM Repeated Measures wymaga osobnej zmiennej dla każdego powtórzenia pomiaru, a czynnik wewnątrzobiektowy ma tyle poziomów, ile jest tych zmiennych.

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. Gueorguieva, R., & Krystal, J. H. (2004). Move over ANOVA: Progress in analyzing repeated-measures data and its reflection in papers published in the Archives of General Psychiatry. Archives of General Psychiatry, 61(3), 310–317. https://doi.org/10.1001/archpsyc.61.3.310
  2. IBM Corp. (b.d.). GLM Repeated Measures. IBM SPSS Statistics 31.0.0 documentation. Pobrano 18 października 2026 z https://www.ibm.com/docs/en/spss-statistics/31.0.0?topic=statistics-glm-repeated-measures ● Otwarty dostęp
  3. 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{gueorguieva2004move, author={Gueorguieva, Ralitza and Krystal, John H.}, title={{Move over ANOVA: Progress in analyzing repeated-measures data and its reflection in papers published in the Archives of General Psychiatry}}, journal={Archives of General Psychiatry}, year={2004}, volume={61}, number={3}, pages={310--317}, doi={10.1001/archpsyc.61.3.310}}
@misc{ibmndglmrepeated, author={{IBM Corp.}}, title={{GLM Repeated Measures}}, howpublished={IBM SPSS Statistics 31.0.0 documentation}, publisher={IBM}, url={https://www.ibm.com/docs/en/spss-statistics/31.0.0?topic=statistics-glm-repeated-measures}}
@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