Programy · R

R dla początkujących: od wczytania danych do pierwszego testu

Instalacja R i RStudio, projekt i skrypt, wczytanie pliku CSV i .sav, ramka danych, wynik skali, statystyki opisowe i test t Welcha z d Cohena – na jednym przykładzie z danymi do pobrania.

Strona główna / Blog / R dla początkujących
W skrócie: Zainstaluj R, potem RStudio, i pracuj w projekcie – wtedy plik z danymi wczytasz samą nazwą. Po wczytaniu zawsze sprawdź str(): kod grupy zamień na czynnik, a wynik skali policz w skrypcie (rowMeans()). Plik z polskiego Excela wczytuj przez read.csv2(), a plik SPSS przez haven::read_sav(). Funkcja t.test() domyślnie liczy test Welcha. Dodaj d Cohena z 95% CI i sprawdź, czy skrypt działa od zera w nowej sesji.

Na start: R, RStudio i jeden folder projektu

Ten poradnik prowadzi od pustego komputera do pierwszego wyniku, który możesz wpisać do pracy: wczytasz plik z danymi, policzysz wynik skali, opiszesz grupy i wykonasz test t. Czym jest sam język, jak działają pakiety i jak zacytować R, wyjaśnia hasło R (język programowania). Porównanie R z jamovi, JASP i PSPP znajdziesz we wpisie o bezpłatnych programach do analizy statystycznej.

Zainstaluj dwa programy, w tej kolejności:

  1. R – silnik obliczeniowy, pobierany z repozytorium CRAN. Działa w systemach Windows, macOS i Linux (The R Foundation, b.d.).
  2. RStudio Desktop – edytor, w którym pracujesz z R. Według dokumentacji producenta RStudio potrzebuje osobnej instalacji R, której większość systemów nie ma. Wersja na komputer jest otwartym oprogramowaniem na licencji AGPL v3 (Posit, 2026).

Po uruchomieniu RStudio zobaczysz cztery panele. Source to edytor skryptu, w którym zapisujesz polecenia. Console pokazuje polecenia w trakcie wykonywania i ich wyniki. Environment zawiera listę obiektów w pamięci, np. wczytanych danych. Panel Output ma karty Files, Plots, Packages i Help (Posit, 2026). Pisz w edytorze, nie w konsoli. Konsola nie zachowuje analizy, a skrypt tak.

Zanim napiszesz pierwszą linijkę, utwórz projekt: File > New Project. RStudio zapisze w folderze plik .Rproj, a po otwarciu projektu folder ten stanie się katalogiem roboczym (Posit, 2026). Wrzuć do niego plik z danymi i skrypt. Wtedy wystarczy podać samą nazwę pliku, bez ścieżki w rodzaju C:/Users/…/Pulpit/…, która na komputerze promotora nie zadziała.

Trzy rzeczy, które musisz wiedzieć o składni

  • Obiekt i przypisanie. dane <- read.csv("plik.csv") wczytuje plik i zapisuje go pod nazwą dane. Strzałka <- to przypisanie. Bez niej wynik pojawi się tylko w konsoli i nigdzie się nie zapisze.
  • Funkcja i argumenty. Nazwa funkcji, a w nawiasie argumenty oddzielone przecinkami, np. mean(x, na.rm = TRUE). Pomoc do funkcji otwierasz poleceniem ?mean.
  • Komentarz. Wszystko po znaku # R pomija. Komentuj, dlaczego coś robisz, np. „pozycja 3 jest odwrócona”. To, co robi polecenie, widać z samego kodu.

Pakiet instalujesz raz (install.packages("haven")), a w każdej sesji wczytujesz go poleceniem library(haven). Repozytorium CRAN liczyło w październiku 2026 r. ponad 25 tysięcy pakietów (The Comprehensive R Archive Network, b.d.). Na start wystarczą dwa: haven do plików SPSS i effectsize do wielkości efektu. Całą resztę zrobisz funkcjami wbudowanymi w R. Rysunek 1 pokazuje sześć kroków, przez które przejdziemy.

Sześć kroków pierwszej analizy w R: wczytaj (read.csv, read.csv2, read_sav), sprawdź (dim, str, head), przygotuj (factor, rowMeans, is.na), opisz (summary, aggregate, table), testuj (t.test, cohens_d), zapisz (write.csv, sessionInfo), z pytaniem kontrolnym nad każdym krokiem
Rysunek 1. Pierwsza analiza w R jako sześć kroków jednego skryptu. Nad każdym krokiem jest pytanie, na które odpowiedz, zanim przejdziesz dalej. Pod spodem: funkcje R używane w tym poradniku.

Badanie przykładowe: warsztat a prokrastynacja

Osiemdziesiąt cztery osoby studiujące wypełniły pięciopozycyjną skalę prokrastynacji akademickiej (odpowiedzi 1–5, wyższy wynik oznacza większą prokrastynację). Pozycja 3 jest sformułowana odwrotnie. Wcześniej 41 osób wzięło udział w warsztacie zarządzania czasem, a 43 trafiły do grupy kontrolnej. Dane są symulowane. Pobierz je w dwóch formatach: plik CSV i plik SPSS (.sav). Oba mają kolumny id, grupa (1 = warsztat, 2 = kontrolna), wiek i p1–p5. Zapisz je w folderze projektu.

Krok 1. Wczytaj plik CSV i sprawdź, co się wczytało

Plik CSV to zwykły tekst: wiersz nagłówka z nazwami kolumn, potem jeden wiersz na osobę. Wczytasz go funkcją read.csv(). Od razu sprawdź trzy rzeczy: dim() podaje liczbę wierszy i kolumn, str() typ każdej kolumny, a head() pierwsze wiersze. W przykładzie wynik to 84 wiersze i 8 kolumn, wszystkie typu int (liczby całkowite). Jeśli kolumna z liczbami wczytała się jako tekst (chr), w danych jest coś, czego R nie umie odczytać jako liczby, np. „brak” albo „3,5”.

Najczęstsza pułapka to plik z polskiego Excela. Excel z polskimi ustawieniami regionalnymi zapisuje CSV ze średnikiem jako separatorem i przecinkiem dziesiętnym. Funkcja read.csv() oczekuje przecinka, więc taki plik wczytuje się jako jedna kolumna. W kodzie niżej zapisaliśmy trzy wiersze w takim formacie: read.csv() zwróciło 1 kolumnę, a read.csv2() wszystkie 8. Jeśli zamiast polskich znaków widzisz „krzaczki”, problemem jest kodowanie znaków. Pomoże wtedy argument fileEncoding = "UTF-8".

Wiele kłopotów z wczytaniem zaczyna się w arkuszu. Broman i Woo (2018) zalecają, by dane tworzyły jeden prostokąt z jednym wierszem nagłówka, by w każdej komórce była jedna informacja, by nie zostawiać pustych komórek bez znaczenia i nie kodować niczego kolorem. Więcej o porządkowaniu zbioru przeczytasz w poradniku jak przygotować bazę danych do analizy i w haśle dane uporządkowane.

Krok 2. Wczytaj plik SPSS (.sav) z etykietami

Gdy dane przychodzą z SPSS albo z eksportu ankiety, użyj funkcji read_sav() z pakietu haven. Pakiet czyta i zapisuje pliki SPSS, Stata i SAS (Wickham i in., 2025). Zaletą pliku .sav są etykiety wartości. Funkcja print_labels() pokazała, że 1 to „warsztat”, a 2 to „kontrolna”. Funkcja as_factor() zamienia kody na te etykiety, a tabela liczebności dała 41 i 43 osoby, tak jak w pliku CSV. Jak przenieść do R dane z formularza internetowego, opisuje poradnik dane z Google Forms i LimeSurvey.

Krok 3. Przygotuj ramkę danych: czynnik, pozycja odwrócona, wynik skali

Wczytany zbiór to ramka danych (data.frame): tabela, w której kolumny są zmiennymi, a wiersze osobami. Do kolumny odwołujesz się przez znak dolara, np. dane$wiek. Nowa kolumna powstaje przez przypisanie, np. dane$p3_odwr <- 6 - dane$p3. W tym kroku wykonaj trzy operacje:

  1. Zamień kod grupy na czynnik (factor()) z etykietami. Bez tego R traktuje 1 i 2 jak liczby i policzy z nich średnią. Inne sposoby kodowania opisuje hasło kodowanie zmiennych w R.
  2. Odwróć pozycję 3. Przy skali 1–5 nowa wartość to 6 minus stara. Odwróconą pozycję zapisz w nowej kolumnie, a oryginału nie nadpisuj.
  3. Policz wynik skali jako średnią pięciu pozycji: rowMeans(). Wynik skali to zmienna pochodna, więc licz go zawsze w skrypcie, nigdy ręcznie w arkuszu.

Przed liczeniem sprawdź braki: colSums(is.na(…)) pokazało jeden brak w pozycji p4. Argument na.rm = TRUE sprawił, że wynik tej osoby jest średnią z czterech pozycji. To decyzja metodologiczna, a nie techniczna. Opisz ją w pracy, a przy większej liczbie braków sprawdź zasady autorów narzędzia (zob. wynik skali: średnia czy suma, braki danych i poradnik jak policzyć wynik kwestionariusza). Funkcja summary() pokazała wyniki od 1.00 do 4.60, z medianą 2.60 i średnią 2.65.

Krok 4. Policz statystyki opisowe w grupach

Funkcja table() liczy osoby w grupach, a aggregate() liczy dowolną statystykę osobno dla każdej grupy. Średni wiek wyniósł 22.60 roku (SD = 1.80). Wyniki skali zebrano w tabeli.

Prokrastynacja akademicka w grupie z warsztatem i w grupie kontrolnej: liczebność, średnia i odchylenie standardowe
GrupanMSD
Warsztat412.440.73
Kontrolna432.840.86

Jakie statystyki podać dla jakiej zmiennej i jak zbudować tabelę do pracy, opisują wpis statystyki opisowe w pracy i hasło tabela statystyk opisowych w APA.

Krok 5. Wykonaj test t i policz wielkość efektu

Pytanie badawcze brzmi: czy osoby po warsztacie prokrastynują mniej niż osoby z grupy kontrolnej? Grupy są niezależne, więc wybierasz test t dla prób niezależnych. Zapis t.test(prokr ~ grupa, data = dane) czytaj tak: „prokrastynacja w zależności od grupy”. Funkcja t.test() domyślnie liczy test Welcha, który nie zakłada równych wariancji. Delacre i in. (2017) zalecają go jako wybór domyślny w psychologii, bo przy nierównych wariancjach lepiej kontroluje błąd I rodzaju, a gdy wariancje są równe, prawie nic nie traci. Dlatego w wyniku widać „Welch Two Sample t-test” i ułamkowe stopnie swobody.

Wynik: t(80.98) = −2.30, p = .024. Różnica średnich (warsztat minus kontrolna) wynosi −0.40 punktu, 95% CI [−0.75, −0.05]. Wielkość efektu z pakietu effectsize to d Cohena = −0.50, 95% CI [−0.93, −0.07]. Szeroki przedział pokazuje, że przy 84 osobach efekt może być zarówno bliski zera, jak i duży. Rysunek 2 przedstawia dane, średnie i przedziały ufności.

Wyniki prokrastynacji 84 osób w dwóch grupach jako szare punkty; średnia w grupie z warsztatem 2.44 z 95% CI od 2.21 do 2.67, w grupie kontrolnej 2.84 z 95% CI od 2.58 do 3.11; rozkłady obu grup w dużej części się nakładają
Rysunek 2. Wynik skali prokrastynacji w obu grupach. Szare punkty to osoby, czerwone punkty to średnie, a niebieskie odcinki to 95% przedziały ufności dla średnich. Rozkłady obu grup w dużej części się nakładają, mimo istotnej różnicy średnich. Obliczenia: R (dane symulowane).
Osoby, które uczestniczyły w warsztacie zarządzania czasem (n = 41), uzyskały niższy wynik prokrastynacji akademickiej (M = 2.44, SD = 0.73) niż osoby z grupy kontrolnej (n = 43; M = 2.84, SD = 0.86). Różnica średnich wyniosła −0.40, 95% CI [−0.75, −0.05], t(80.98) = −2.30, p = .024 (test t Welcha), a wielkość efektu była umiarkowana, d = −0.50, 95% CI [−0.93, −0.07]. Analizy wykonano w programie R (wersja 4.5.3).

Pełną procedurę testu t, czyli założenia, trzy wersje testu i wybór miary efektu, opisuje poradnik test t Studenta krok po kroku. Gdy wynik budzi wątpliwości, możesz go sprawdzić w kalkulatorze wartości p.

Krok 6. Zapisz wyniki i sprawdź, czy skrypt działa od zera

Skrypt jest wart tyle, ile to, czy da się go uruchomić ponownie. Trisovic i in. (2022) uruchomili ponad 9000 plików R z repozytoriów replikacyjnych. Przy pierwszym uruchomieniu 74% zakończyło się błędem. Wilson i in. (2017) radzą badaczom bez przygotowania informatycznego trzymać dane, kod i wyniki w jednym, uporządkowanym folderze projektu i zapisywać każdy krok obróbki danych. W praktyce:

  • na początku skryptu wczytaj wszystkie pakiety, na końcu zapisz wersje: R.version.string, packageVersion() albo całe sessionInfo();
  • wyniki zapisuj do plików (write.csv()), zamiast przepisywać je z konsoli;
  • przed oddaniem rozdziału zrestartuj sesję R i uruchom skrypt od pierwszej do ostatniej linijki.

Jak przygotować skrypt i dane do udostępnienia, pokazuje poradnik pakiet replikacyjny. Zalecany sposób cytowania programu wypisuje funkcja citation() (R Core Team, 2026).

Przykład reprodukowalny

Cały skrypt z wynikami

Skrypt odtwarza wszystkie liczby z tekstu. Uruchom go w projekcie RStudio, w którego folderze leżą oba pobrane pliki z danymi. Wynik pokazuje każde polecenie (poprzedzone znakiem >) i to, co R wypisał w konsoli.

Od pliku CSV i .sav do testu t Welcha

Dane wejściowe: 84 osoby studiujące, grupa warsztatowa (n = 41) i kontrolna (n = 43), pięć pozycji skali prokrastynacji 1–5, pozycja 3 odwrócona, jeden brak (dane symulowane, set.seed(1150) w skrypcie b115-0-dane.R, który tworzy pliki do pobrania); pakiety haven i effectsize.

Co odczytać: wymiary i typy kolumn, liczbę kolumn przy złym i dobrym separatorze, etykiety z pliku .sav, liczbę braków, rozkład wyniku skali, M i SD w grupach, wynik testu Welcha (t, df, p, 95% CI różnicy) i d Cohena z 95% CI.

R
# Krok 1. Wczytanie pliku CSV (plik w folderze projektu)
dane <- read.csv("r-dla-poczatkujacych-dane.csv")
dim(dane)                        # liczba wierszy i kolumn
str(dane)                        # typ każdej kolumny
head(dane, 3)                    # pierwsze trzy wiersze

# Pułapka: CSV z polskiego Excela (średnik i przecinek dziesiętny)
tmp <- tempfile(fileext = ".csv")
write.csv2(head(dane, 3), tmp, row.names = FALSE)
readLines(tmp, n = 2)
ncol(read.csv(tmp))              # zły separator: wszystko w jednej kolumnie
ncol(read.csv2(tmp))             # read.csv2() zna średnik i przecinek

# Krok 2. Ten sam zbiór z pliku SPSS (.sav) – z etykietami wartości
library(haven)
dane_sav <- read_sav("r-dla-poczatkujacych-dane.sav")
print_labels(dane_sav$grupa)
table(as_factor(dane_sav$grupa))

# Krok 3. Przygotowanie ramki danych
dane$grupa <- factor(dane$grupa, levels = c(1, 2), labels = c("warsztat", "kontrolna"))
dane$p3_odwr <- 6 - dane$p3                                  # pozycja 3 jest odwrócona
pozycje <- c("p1", "p2", "p3_odwr", "p4", "p5")
colSums(is.na(dane[, pozycje]))                              # braki w pozycjach
dane$prokr <- rowMeans(dane[, pozycje], na.rm = TRUE)        # wynik skali: średnia pozycji 1–5
summary(dane$prokr)

# Krok 4. Statystyki opisowe w grupach
table(dane$grupa)
aggregate(prokr ~ grupa, data = dane, FUN = function(x) round(c(M = mean(x), SD = sd(x)), 2))
round(c(M_wiek = mean(dane$wiek), SD_wiek = sd(dane$wiek)), 2)

# Krok 5. Test t Welcha (domyślny w R) i d Cohena z 95% CI
wynik <- t.test(prokr ~ grupa, data = dane)
wynik
library(effectsize)
cohens_d(prokr ~ grupa, data = dane, pooled_sd = FALSE)

# Krok 6. Zapis wyników i informacji o sesji
write.csv(aggregate(prokr ~ grupa, data = dane, FUN = mean), "prokrastynacja-srednie.csv", row.names = FALSE)
R.version.string
packageVersion("haven"); packageVersion("effectsize")
Wynik w R
> # Krok 1. Wczytanie pliku CSV (plik w folderze projektu)
> dane <- read.csv("r-dla-poczatkujacych-dane.csv")

> dim(dane)                        # liczba wierszy i kolumn
[1] 84  8

> str(dane)                        # typ każdej kolumny
'data.frame':	84 obs. of  8 variables:
 $ id   : int  1 2 3 4 5 6 7 8 9 10 ...
 $ grupa: int  1 1 1 1 1 1 1 1 1 1 ...
 $ wiek : int  26 25 23 21 23 23 21 22 27 23 ...
 $ p1   : int  4 3 2 2 3 2 3 2 3 4 ...
 $ p2   : int  3 3 2 2 3 2 3 3 3 3 ...
 $ p3   : int  1 4 5 4 3 4 3 4 2 3 ...
 $ p4   : int  3 3 2 2 3 1 3 3 3 3 ...
 $ p5   : int  3 2 1 2 2 1 2 1 2 3 ...

> head(dane, 3)                    # pierwsze trzy wiersze
  id grupa wiek p1 p2 p3 p4 p5
1  1     1   26  4  3  1  3  3
2  2     1   25  3  3  4  3  2
3  3     1   23  2  2  5  2  1

> # Pułapka: CSV z polskiego Excela (średnik i przecinek dziesiętny)
> tmp <- tempfile(fileext = ".csv")

> write.csv2(head(dane, 3), tmp, row.names = FALSE)

> readLines(tmp, n = 2)
[1] "\"id\";\"grupa\";\"wiek\";\"p1\";\"p2\";\"p3\";\"p4\";\"p5\""
[2] "1;1;26;4;3;1;3;3"                                            

> ncol(read.csv(tmp))              # zły separator: wszystko w jednej kolumnie
[1] 1

> ncol(read.csv2(tmp))             # read.csv2() zna średnik i przecinek
[1] 8

> # Krok 2. Ten sam zbiór z pliku SPSS (.sav) – z etykietami wartości
> library(haven)

> dane_sav <- read_sav("r-dla-poczatkujacych-dane.sav")

> print_labels(dane_sav$grupa)

Labels:
 value     label
     1  warsztat
     2 kontrolna

> table(as_factor(dane_sav$grupa))

 warsztat kontrolna 
       41        43 

> # Krok 3. Przygotowanie ramki danych
> dane$grupa <- factor(dane$grupa, levels = c(1, 2), labels = c("warsztat", "kontrolna"))

> dane$p3_odwr <- 6 - dane$p3                                  # pozycja 3 jest odwrócona

> pozycje <- c("p1", "p2", "p3_odwr", "p4", "p5")

> colSums(is.na(dane[, pozycje]))                              # braki w pozycjach
     p1      p2 p3_odwr      p4      p5 
      0       0       0       1       0 

> dane$prokr <- rowMeans(dane[, pozycje], na.rm = TRUE)        # wynik skali: średnia pozycji 1–5

> summary(dane$prokr)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  1.000   2.000   2.600   2.646   3.050   4.600 

> # Krok 4. Statystyki opisowe w grupach
> table(dane$grupa)

 warsztat kontrolna 
       41        43 

> aggregate(prokr ~ grupa, data = dane, FUN = function(x) round(c(M = mean(x), SD = sd(x)), 2))
      grupa prokr.M prokr.SD
1  warsztat    2.44     0.73
2 kontrolna    2.84     0.86

> round(c(M_wiek = mean(dane$wiek), SD_wiek = sd(dane$wiek)), 2)
 M_wiek SD_wiek 
   22.6     1.8 

> # Krok 5. Test t Welcha (domyślny w R) i d Cohena z 95% CI
> wynik <- t.test(prokr ~ grupa, data = dane)

> wynik

	Welch Two Sample t-test

data:  prokr by grupa
t = -2.2992, df = 80.975, p-value = 0.02407
alternative hypothesis: true difference in means between group warsztat and group kontrolna is not equal to 0
95 percent confidence interval:
 -0.74917671 -0.05405642
sample estimates:
 mean in group warsztat mean in group kontrolna 
               2.440244                2.841860 


> library(effectsize)

> cohens_d(prokr ~ grupa, data = dane, pooled_sd = FALSE)
Cohen's d |         95% CI
--------------------------
-0.50     | [-0.93, -0.07]

- Estimated using un-pooled SD.
> # Krok 6. Zapis wyników i informacji o sesji
> write.csv(aggregate(prokr ~ grupa, data = dane, FUN = mean), "prokrastynacja-srednie.csv", row.names = FALSE)

> R.version.string
[1] "R version 4.5.3 (2026-03-11)"

> packageVersion("haven"); packageVersion("effectsize")
[1] ‘2.5.5’
[1] ‘1.0.2’

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (funkcje read.csv(), read.csv2(), rowMeans(), aggregate() i t.test() z pakietów wbudowanych). Rysunki przygotowano w pakiecie ggplot2.

  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. haven (wersja 2.5.5): Wickham, H., Miller, E., & Smith, D. (2025). haven: Import and export 'SPSS', 'Stata' and 'SAS' files [R package]. https://doi.org/10.32614/CRAN.package.haven
  3. effectsize (wersja 1.0.2): Ben-Shachar, M. S., Lüdecke, D., & Makowski, D. (2020). effectsize: Estimation of effect size indices and standardized parameters. Journal of Open Source Software, 5(56), 2815. https://doi.org/10.21105/joss.02815
  4. ggplot2 (wersja 4.0.2): Wickham, H. (2016). ggplot2: Elegant graphics for data analysis. Springer. https://ggplot2.tidyverse.org

Najczęstsze błędy na początku

  • „cannot open file … No such file or directory”. Plik nie leży w katalogu roboczym. Otwórz projekt (.Rproj), zamiast przechodzić do folderu ręcznie. Katalog roboczy sprawdzisz poleceniem getwd().
  • „could not find function”. Pakiet nie został wczytany w tej sesji. Dodaj library() na początku skryptu.
  • Średnia z kodów grupy. Kod 1/2 bez factor() R traktuje jak liczbę. Zawsze sprawdź str() po wczytaniu.
  • Wielkość liter i znaki. R odróżnia Dane od dane. Nazwy kolumn twórz bez spacji i polskich znaków (np. wynik_skali).
  • Zmiany danych w Excelu „na boku”. Każde rekodowanie i wykluczenie osoby rób w skrypcie. Inaczej po poprawkach promotora nie odtworzysz wyników.
  • Oczekiwanie, że R „sam wybierze” test. R wykona dokładnie to, o co go poprosisz. Wersję testu i miarę efektu wybierz przed analizą (zob. jak dobrać test statystyczny do hipotezy).

Jeśli utkniesz na interpretacji wyników albo nie wiesz, czy wybrana analiza pasuje do hipotez, możesz skorzystać z konsultacji w ramach analiz statystycznych dla studentów. Wyniki opiszesz wtedy samodzielnie i będziesz w stanie ich bronić.

Najczęstsze pytania

Od czego zacząć naukę R do pracy magisterskiej?

Zacznij od własnych danych, nie od kursu całego języka. Zainstaluj R i RStudio, utwórz projekt, wczytaj plik, sprawdź typy kolumn, policz statystyki opisowe i jeden test z hipotezy. Kilka funkcji – read.csv(), str(), factor(), aggregate(), t.test() – wystarczy do pierwszego rozdziału wyników.

Czy RStudio to to samo co R?

Nie. R to język i silnik obliczeń, a RStudio to edytor, w którym z nim pracujesz: z panelem skryptu, konsolą, listą obiektów i oknem wykresów. RStudio wymaga osobnej instalacji R, więc zainstaluj najpierw R, a potem RStudio. W pracy podajesz wersję R i pakietów, a wersji RStudio zwykle nie.

Dlaczego R wczytuje mój plik CSV do jednej kolumny?

Najczęściej plik zapisał Excel z polskimi ustawieniami: separatorem jest średnik, a liczby mają przecinek dziesiętny. Funkcja read.csv() oczekuje przecinka jako separatora, więc całą linię traktuje jak jedną wartość. Użyj read.csv2() albo podaj sep = ";" i dec = ",", a potem sprawdź wynik funkcją str().

Jak policzyć wynik skali kwestionariusza w R?

Najpierw odwróć pozycje odwrócone (przy skali 1–5: 6 minus odpowiedź) w nowej kolumnie. Potem policz średnią pozycji funkcją rowMeans() albo sumę funkcją rowSums(), zgodnie z kluczem narzędzia. Argument na.rm = TRUE liczy wynik mimo braków. Tę decyzję opisz w pracy, a przy wielu brakach sprawdź zasady autorów narzędzia.

Dlaczego t.test w R nie daje tego samego wyniku co klasyczny test t?

Bo t.test() domyślnie liczy test Welcha, który nie zakłada równych wariancji i ma ułamkowe stopnie swobody. Klasyczny test Studenta dostaniesz z argumentem var.equal = TRUE. Test Welcha jest zalecany jako wybór domyślny, więc zwykle nie musisz nic zmieniać. Napisz tylko w pracy, którą wersję testu podajesz.

Powiązane hasła

Przeczytaj też

Masz dane w R i nie wiesz, czy analiza jest poprawna?

Sprawdzimy Twój skrypt i dobór testów, policzymy brakujące analizy i wyjaśnimy wyniki tak, żebyś umiał(a) je samodzielnie opisać i obronić.

Oferta dla studentówWyceń analizę

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. Delacre, M., Lakens, D., & Leys, C. (2017). Why psychologists should by default use Welch's t-test instead of Student's t-test. International Review of Social Psychology, 30(1), 92–101. https://doi.org/10.5334/irsp.82 ● Otwarty dostęp
  3. Posit. (2026). RStudio IDE user guide (Release 2026.10.0). Posit Docs. https://docs.posit.co/ide/user/ ● Otwarty dostęp
  4. 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/ ● Otwarty dostęp
  5. The Comprehensive R Archive Network. (b.d.). CRAN: Contributed packages. Pobrano 26 października 2026 z https://cran.r-project.org/web/packages/ ● Otwarty dostęp
  6. The R Foundation. (b.d.). The R Project for Statistical Computing. Pobrano 26 października 2026 z https://www.r-project.org/ ● Otwarty dostęp
  7. Trisovic, A., Lau, M. K., Pasquier, T., & Crosas, M. (2022). A large-scale study on research code quality and execution. Scientific Data, 9(1), Article 60. https://doi.org/10.1038/s41597-022-01143-6 ● Otwarty dostęp
  8. Wickham, H., Miller, E., & Smith, D. (2025). haven: Import and export 'SPSS', 'Stata' and 'SAS' files (Version 2.5.5) [R package]. https://doi.org/10.32614/CRAN.package.haven ● Otwarty dostęp
  9. Wilson, G., Bryan, J., Cranston, K., Kitzes, J., Nederbragt, L., & Teal, T. K. (2017). Good enough practices in scientific computing. PLOS Computational Biology, 13(6), Article e1005510. https://doi.org/10.1371/journal.pcbi.1005510 ● 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{delacre2017why, author={Delacre, Marie and Lakens, Daniël and Leys, Christophe}, title={{Why psychologists should by default use Welch's t-test instead of Student's t-test}}, journal={International Review of Social Psychology}, year={2017}, volume={30}, number={1}, pages={92--101}, doi={10.5334/irsp.82}}
@misc{posit2026rstudio, author={{Posit Software, PBC}}, title={{RStudio IDE user guide (Release 2026.10.0)}}, howpublished={Posit Docs}, year={2026}, url={https://docs.posit.co/ide/user/}}
@misc{rcoreteam2026r, author={{R Core Team}}, title={{R: A language and environment for statistical computing [Computer software]}}, year={2026}, publisher={R Foundation for Statistical Computing}, url={https://www.R-project.org/}}
@misc{crannd, author={{The Comprehensive R Archive Network}}, title={{CRAN: Contributed packages}}, url={https://cran.r-project.org/web/packages/}}
@misc{rfoundationndr, author={{The R Foundation}}, title={{The R Project for Statistical Computing}}, url={https://www.r-project.org/}}
@article{trisovic2022large, author={Trisovic, Ana and Lau, Matthew K. and Pasquier, Thomas and Crosas, Mercè}, title={{A large-scale study on research code quality and execution}}, journal={Scientific Data}, year={2022}, volume={9}, number={1}, eid={60}, doi={10.1038/s41597-022-01143-6}}
@misc{wickham2025haven, author={Wickham, Hadley and Miller, Evan and Smith, Danny}, title={{haven: Import and export 'SPSS', 'Stata' and 'SAS' files (R package version 2.5.5) [Computer software]}}, year={2025}, doi={10.32614/cran.package.haven}}
@article{wilson2017good, author={Wilson, Greg and Bryan, Jennifer and Cranston, Karen and Kitzes, Justin and Nederbragt, Lex and Teal, Tracy K.}, title={{Good enough practices in scientific computing}}, journal={PLOS Computational Biology}, year={2017}, volume={13}, number={6}, eid={e1005510}, doi={10.1371/journal.pcbi.1005510}}
R