Dane z Formularzy Google do analizy – eksport CSV i przygotowanie krok po kroku
Formularze Google zbierają odpowiedzi wygodnie, ale plik, który z nich pobierzesz, rzadko nadaje się do analizy od razu. Typowe pytanie z pracy dyplomowej: jak z tabeli pełnej długich pytań, słów „Raczej się zgadzam” i komórek typu „Notatki; Quizy” zrobić dane, na których policzysz procenty, średnie i testy?
W prostych słowachKażda osoba to jeden wiersz, każde pytanie – jedna kolumna. Twoje zadanie to nadać kolumnom krótkie nazwy, zamienić słowa na liczby tam, gdzie chcesz liczyć średnie, rozbić pytania wielokrotnego wyboru na osobne kolumny „tak/nie” i zaznaczyć braki odpowiedzi. Rób to w kodzie albo w kopii pliku, nigdy w oryginale.
Wszystko pokażemy na mini-ankiecie „Jak się uczysz?”: 8 studentów, płeć, pytanie o metody nauki (wielokrotny wybór) i trzy stwierdzenia na skali Likerta, w tym jedno odwrócone. Jak zaplanować samą ankietę, opisujemy we wpisie gdzie zrobić ankietę do pracy magisterskiej.
Krok 1. Jak pobrać odpowiedzi z Formularzy Google?
W formularzu otwórz zakładkę z odpowiedziami. Masz dwie drogi: pobrać odpowiedzi jako plik CSV (z menu trzech kropek, plik przychodzi spakowany w ZIP) albo połączyć formularz z Arkuszem Google i z arkusza wybrać pobieranie w formacie CSV. Oba pliki mają ten sam układ: pierwsza kolumna to sygnatura czasowa, a dalej po jednej kolumnie na pytanie. Oryginalny plik zachowaj bez zmian. Wszystkie poprawki rób w kopii albo w kodzie, który da się uruchomić jeszcze raz, gdy dojdą nowe odpowiedzi.
Krok 2. Polskie znaki – dlaczego zamiast „ł” widzisz krzaki?
Google zapisuje CSV w kodowaniu UTF-8. Kłopot pojawia się, gdy plik otworzysz podwójnym kliknięciem w Excelu – program może odczytać go w innym kodowaniu i „Mężczyzna” zamieni się w ciąg dziwnych znaków. Jeśli potem zapiszesz plik, uszkodzisz dane. Bezpieczniej jest importować CSV ze wskazaniem kodowania UTF-8: w Excelu przez import danych z pliku tekstowego, w R przez fileEncoding = "UTF-8", a w jamovi czy SPSS – w oknie importu. Po wczytaniu sprawdź kilka komórek z „ą”, „ę” i „ł”.
Krok 3. Nazwy kolumn – zamień pytania na krótkie kody
Nagłówki kolumn to pełne treści pytań, np. „Odkładam naukę na ostatnią chwilę”. Do analizy potrzebujesz krótkich kodów bez spacji i znaków specjalnych. Zapisz je w tabeli, tzw. książce kodów, która trafi potem do aneksu pracy.
| Pytanie w formularzu | Kod | Typ pytania | Co zrobić przed analizą |
|---|---|---|---|
| Sygnatura czasowa | czas | data i godzina | zostawić do kontroli duplikatów |
| Płeć | plec | jednokrotny wybór | zmienna kategorialna o 2 poziomach |
| Z jakich metod nauki korzystasz? | metody | wielokrotny wybór | rozdzielić na 4 kolumny 0/1 |
| Lubię się uczyć | P1 | Likert 1–5 (słowa) | zamienić słowa na liczby |
| Uczę się systematycznie | P2 | Likert 1–5 (słowa) | zamienić słowa na liczby |
| Odkładam naukę na ostatnią chwilę | P3 | Likert 1–5 (słowa) | zamienić na liczby i odwrócić: P3r = 6 − P3 |
Krok 4. Pytania jednokrotnego wyboru
Płeć, kierunek czy rok studiów to zmienne kategorialne. W R zamień je na czynnik (factor) i ustal kolejność poziomów, np. rok I, II, III, a nie alfabetyczną. Uważaj na opcję „Inne:” z polem do wpisania. Odpowiedzi „ekonomia”, „Ekonomia ” i „ekonomia UW” program uzna za trzy różne kategorie, więc ujednolić je musisz ręcznie. Liczebności i procenty policzysz potem jak w haśle o częstościach i procentach. W naszej ankiecie wzięło udział 5 kobiet i 3 mężczyzn.
Krok 5. Pytania wielokrotnego wyboru – rozdzielanie odpowiedzi
Gdy ktoś zaznaczy kilka opcji, Formularze zapisują je w jednej komórce, oddzielone separatorem – zwykle przecinkiem ze spacją. W naszym pliku opcje rozdziela średnik ze spacją („; ”). Sprawdź separator w swoim pliku i wpisz go w kodzie. Takiej komórki nie da się policzyć wprost. Trzeba ją rozbić na osobne kolumny, po jednej na opcję, z wartością 1 (zaznaczył) lub 0 (nie zaznaczył).
Procenty liczysz od liczby osób, a nie od liczby zaznaczeń. Notatki wybrało 5 z 8 osób, czyli 62,5%, Quizy i Fiszki – po 37,5%, a Filmy – 25,0%. Te procenty sumują się do więcej niż 100%, bo jedna osoba mogła wybrać kilka opcji. W pracy napisz to w nocie pod tabelą. Jeśli pytanie nie było obowiązkowe, zdecyduj też, czy podstawą jest 8 osób, czy 7, które odpowiedziały, i podaj tę liczbę.
Krok 6. Skala Likerta zapisana słowami – zamiana na liczby
Formularz zapisuje odpowiedź tak, jak brzmiała etykieta, np. „Raczej się zgadzam”. Ustal przypisanie: „Zdecydowanie się nie zgadzam” = 1, „Raczej się nie zgadzam” = 2, „Ani tak, ani nie” = 3, „Raczej się zgadzam” = 4, „Zdecydowanie się zgadzam” = 5. W kodzie zrób to jedną listą etykiet, a nie ręcznym poprawianiem komórek. Literówka albo dodatkowa spacja w etykiecie da brak danych zamiast liczby, więc po zamianie policz braki jeszcze raz. Pytanie odwrócone (P3) przelicz wzorem 6 − odpowiedź, żeby wysoki wynik zawsze znaczył to samo. Czy wynik skali liczyć średnią, czy medianą, wyjaśniamy we wpisie skala Likerta – jak ją analizować, a rzetelność skali sprawdzisz jak w przykładzie z alfą Cronbacha.
Krok 7. Braki danych – puste komórki to nie zera
Pusta komórka oznacza brak odpowiedzi i w R powinna mieć wartość NA. Nigdy nie wpisuj w jej miejsce 0 ani 3 „ze środka skali”, bo zmienisz średnią i rozrzut. W naszym pliku są dwa braki: osoba 7 nie wybrała żadnej metody, a osoba 8 pominęła P2. Średnią skali dla osoby 8 policzyliśmy z dwóch dostępnych pytań. Taka reguła jest w porządku, gdy braków jest mało i opiszesz ją w pracy. Przy wielu brakach sięgnij po metody opisane we wpisie braki danych i imputacja wielokrotna.
Cały przepływ w R
Kod wczytuje mały plik CSV wpisany wprost w skrypt, nadaje krótkie nazwy, zamienia Likerta na liczby, rozdziela metody nauki i liczy braki, procenty oraz wynik skali. Ten sam kod uruchomisz na pełnym pliku, zmieniając tylko pierwszą linię.
# Eksport CSV z Formularzy Google (8 osób). Z pliku wczytasz go tak:
# d <- read.csv("odpowiedzi.csv", fileEncoding = "UTF-8", na.strings = "", check.names = FALSE)
csv <- '"Sygnatura czasowa","Płeć","Z jakich metod nauki korzystasz?","Lubię się uczyć","Uczę się systematycznie","Odkładam naukę na ostatnią chwilę"
"2026/03/02 10:15:23","Kobieta","Notatki; Quizy","Raczej się zgadzam","Raczej się zgadzam","Raczej się nie zgadzam"
"2026/03/02 10:21:40","Mężczyzna","Fiszki","Raczej się nie zgadzam","Zdecydowanie się nie zgadzam","Zdecydowanie się zgadzam"
"2026/03/02 11:02:05","Kobieta","Notatki; Fiszki; Filmy","Zdecydowanie się zgadzam","Raczej się zgadzam","Zdecydowanie się nie zgadzam"
"2026/03/02 12:44:18","Kobieta","Quizy","Ani tak, ani nie","Ani tak, ani nie","Ani tak, ani nie"
"2026/03/03 09:10:51","Mężczyzna","Notatki; Filmy","Raczej się zgadzam","Zdecydowanie się zgadzam","Raczej się nie zgadzam"
"2026/03/03 09:35:12","Kobieta","Notatki; Quizy; Fiszki","Zdecydowanie się zgadzam","Raczej się zgadzam","Zdecydowanie się nie zgadzam"
"2026/03/03 14:27:33","Mężczyzna","","Raczej się nie zgadzam","Raczej się nie zgadzam","Raczej się zgadzam"
"2026/03/04 18:03:09","Kobieta","Notatki","Raczej się zgadzam","","Raczej się nie zgadzam"'
d <- read.csv(text = csv, encoding = "UTF-8", na.strings = "", check.names = FALSE)
names(d) <- c("czas", "plec", "metody", "P1", "P2", "P3") # krótkie nazwy kolumn
d$plec <- factor(d$plec, levels = c("Kobieta", "Mężczyzna")) # jednokrotny wybór
skala <- c("Zdecydowanie się nie zgadzam", "Raczej się nie zgadzam", "Ani tak, ani nie",
"Raczej się zgadzam", "Zdecydowanie się zgadzam")
for (v in c("P1", "P2", "P3")) d[[v]] <- match(d[[v]], skala) # Likert: tekst -> 1–5
d$P3r <- 6 - d$P3 # pytanie odwrócone
metody <- c("Notatki", "Quizy", "Fiszki", "Filmy") # wielokrotny wybór:
lista <- strsplit(d$metody, "; ", fixed = TRUE) # rozdziel komórkę „; ”
for (m in metody) d[[m]] <- sapply(lista, function(x) as.integer(m %in% x))
colSums(is.na(d[, c("metody", "P1", "P2", "P3")])) # braki danych
table(d$plec)
colSums(d[, metody]) # liczba osób
round(100 * colMeans(d[, metody]), 1) # % z N = 8
d$wynik <- rowMeans(d[, c("P1", "P2", "P3r")], na.rm = TRUE) # średnia z 3 pytań
round(c(M = mean(d$wynik), SD = sd(d$wynik)), 2)
Wynik w konsoli R:
metody P1 P2 P3
1 0 1 0
Kobieta Mężczyzna
5 3
Notatki Quizy Fiszki Filmy
5 3 3 2
Notatki Quizy Fiszki Filmy
62.5 37.5 37.5 25.0
M SD
3.50 1.26
R pokazuje procenty z kropką dziesiętną. W pracy wpisz je z przecinkiem.
Jak opisać przygotowanie danych w pracy?
Gotowy fragment: Dane zebrano za pomocą Formularzy Google, a odpowiedzi wyeksportowano do pliku CSV (kodowanie UTF-8). Odpowiedzi na stwierdzenia oceniane na pięciostopniowej skali Likerta zakodowano liczbowo od 1 („zdecydowanie się nie zgadzam”) do 5 („zdecydowanie się zgadzam”), a pozycję P3 odwrócono. Pytanie wielokrotnego wyboru rozkodowano na zmienne zero-jedynkowe. Brakujące odpowiedzi pozostawiono jako braki danych; wynik skali obliczono jako średnią dostępnych odpowiedzi.
Wynik możesz potem przedstawić w tabeli z opisem próby – jak ją zbudować, pokazujemy we wpisie opis próby badawczej – Tabela 1. Cały dalszy proces opracowania ankiety opisuje poradnik jak opracować wyniki ankiety.
Checklista przed analizą
- Oryginalny plik CSV zachowany bez zmian, poprawki w kopii lub w kodzie.
- Polskie znaki wyświetlają się poprawnie (import z kodowaniem UTF-8).
- Każda kolumna ma krótki kod, a książka kodów jest gotowa do aneksu.
- Odpowiedzi testowe i powtórzone wypełnienia usunięte (sprawdź sygnaturę czasową).
- Kategorie z pola „Inne:” ujednolicone.
- Likert zamieniony na liczby, pytania odwrócone przeliczone.
- Pytania wielokrotnego wyboru rozdzielone na kolumny 0/1.
- Braki policzone i opisane, żadna pusta komórka nie zamieniła się w zero.
Czy Formularze Google same zrobią analizę statystyczną?
Nie. Zakładka podsumowania pokazuje wykresy i liczby odpowiedzi na każde pytanie, ale nie policzy wyniku skali, korelacji ani testu. Te wykresy wystarczą do szybkiego podglądu, a do pracy potrzebujesz danych przygotowanych tak jak wyżej.
Jak policzyć procenty w pytaniu wielokrotnego wyboru?
Podziel liczbę osób, które zaznaczyły opcję, przez liczbę osób w podstawie (wszystkich albo tych, które odpowiedziały). Nie dziel przez łączną liczbę zaznaczeń. Takie „udziały w odpowiedziach” sumują się do 100%, ale nie mówią, jaka część badanych wybrała daną opcję.
Bibliografia
- 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
- Field, A., Miles, J., & Field, Z. (2012). Discovering statistics using R. SAGE.
- Wickham, H. (2014). Tidy data. Journal of Statistical Software, 59(10), 1–23. https://doi.org/10.18637/jss.v059.i10
- Hryniewicz, K., & Milewska, A. (2023). SZTOS: System Zautomatyzowanego Tworzenia Opisu Statystycznego [Oprogramowanie]. SZTOS IT. https://sztos-it.com/
Zobacz też
- PoradnikJak opracować wyniki ankiety krok po kroku
- PoradnikSkala Likerta – średnia czy mediana i jak ją analizować
- Poradnikprzykladowe-raporty/rekodowanie-odpowiedzi-wielokrotnych.html
- Słownik wzorówCzęstości i procenty
- PoradnikOpracowanie wyników ankiety
- Przykładowy raportOpis próby
Potrzebujesz pomocy z analizą do pracy dyplomowej?
Policzymy Twoje wyniki, przygotujemy tabele, wykresy i opis w standardzie APA, który wykorzystasz w swojej pracy. Pomagamy jak statystyk i redaktor – autorem pracy zostajesz Ty. Konsultacja i wycena są bezpłatne.