#Biblioteki
library(googlesheets4)
## Warning: pakiet 'googlesheets4' został zbudowany w wersji R 4.3.3
library(dplyr)
## Warning: pakiet 'dplyr' został zbudowany w wersji R 4.3.2
##
## Dołączanie pakietu: 'dplyr'
## Następujące obiekty zostały zakryte z 'package:stats':
##
## filter, lag
## Następujące obiekty zostały zakryte z 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(knitr)
## Warning: pakiet 'knitr' został zbudowany w wersji R 4.3.3
library(gridExtra)
##
## Dołączanie pakietu: 'gridExtra'
## Następujący obiekt został zakryty z 'package:dplyr':
##
## combine
Niniejszy projekt obejmuje analizę rynku nieruchomości w Polsce oraz opracowanie metod prognozowania cen w tym sektorze. Jego celem jest dogłębne zrozumienie dynamiki oraz czynników wpływających na kształtowanie się wartości nieruchomości, a także przygotowanie prognozy możliwych scenariuszy rozwoju rynku nieruchomości w Polsce w perspektywie najbliższych lat. Prognoza ta zostanie oparta na szczegółowej analizie zmian, które miały miejsce na rynku w latach 2010–2023.
Opis znaczenia rynku nieruchomości w gospodarce: Rynek nieruchomości odgrywa kluczową rolę w gospodarce, będąc istotnym elementem wspierającym rozwój społeczno-ekonomiczny. Z punktu widzenia inwestorów stanowi stabilne i atrakcyjne narzędzie lokowania kapitału, oferujące potencjał generowania długoterminowych zysków. Dla przeciętnego obywatela, zakup nieruchomości jest natomiast jedną z najważniejszych decyzji finansowych, mającą bezpośredni wpływ na stabilność bytową i bezpieczeństwo materialne.
W Polsce rynek nieruchomości w ostatnich latach cechował się znaczną dynamiką. Wzrost cen, wynikający z rosnącego popytu oraz ograniczonej podaży, był szczególnie zauważalny w największych aglomeracjach. Procesy urbanizacyjne, migracje oraz zmiany demograficzne, takie jak starzenie się społeczeństwa, w znacznym stopniu kształtują strukturę popytu. Jednocześnie zmienność cen była wyraźnie powiązana z czynnikami makroekonomicznymi, w tym inflacją, stopami procentowymi i sytuacją gospodarczą, co uwydatnia złożoność tego sektora.
Na kształtowanie się cen nieruchomości wpływają zarówno czynniki lokalne, jak i globalne. Lokalne uwarunkowania obejmują m.in. regionalne różnice cenowe wynikające z poziomu urbanizacji, dostępności infrastruktury, atrakcyjności inwestycyjnej oraz specyfiki lokalnych rynków pracy. Z kolei czynniki globalne, takie jak skutki pandemii COVID-19, wzrost inflacji czy zmiany w sytuacji makroekonomicznej, w istotny sposób wpływają na dostępność finansowania, preferencje inwestycyjne oraz zdolność kredytową gospodarstw domowych. Uwzględnienie tych różnorodnych czynników jest niezbędne do kompleksowej analizy rynku nieruchomości, co podkreśla wieloaspektowość tego sektora i jego znaczenie dla gospodarki.
Prognozowanie cen nieruchomości odgrywa kluczową rolę w podejmowaniu świadomych decyzji ekonomicznych i planowaniu finansowym. Jest to szczególnie istotne w kontekście rosnącej zmienności gospodarczej oraz złożoności rynku, na który wpływają zarówno czynniki lokalne, jak i globalne. Rzetelne prognozy stanowią nieocenione wsparcie dla różnych grup interesariuszy:
Nieruchomości są dobrem heterogenicznym, co oznacza, że ich wartość zależy od szerokiego spektrum czynników, takich jak lokalizacja, infrastruktura, demografia, warunki ekonomiczne czy sytuacja polityczna. Złożoność ta sprawia, że precyzyjne prognozowanie wymaga uwzględnienia zarówno trendów makroekonomicznych, jak i specyficznych uwarunkowań regionalnych. W niniejszym projekcie szczególny nacisk zostanie położony na analizę czynników ekonomicznych i demograficznych, które odgrywają kluczową rolę w kształtowaniu się cen nieruchomości. Prognozy te mogą przyczynić się do lepszego zarządzania ryzykiem, wsparcia procesów decyzyjnych oraz zwiększenia efektywności działań zarówno na poziomie indywidualnym, jak i instytucjonalnym.
Wybór tego tematu jest uzasadniony zarówno jego aktualnością, jak i praktycznym znaczeniem wyników badania. W obliczu obecnych wyzwań gospodarczych oraz dynamicznych zmian zachodzących na rynku nieruchomości w Polsce, tematyka prognozowania cen nieruchomości nabiera szczególnej wagi. Zmienność stóp procentowych, rosnąca inflacja oraz globalne zawirowania gospodarcze, takie jak skutki pandemii COVID-19, znacząco wpływają na zachowania inwestorów, zdolność kredytową gospodarstw domowych oraz dostępność mieszkań. Dodatkowo w Polsce obserwowane są wyraźne oznaki kryzysu mieszkaniowego, które przejawiają się w dynamicznym wzroście cen nieruchomości oraz spadku ich dostępności dla przeciętnego obywatela.
Dane wykorzystane w analizie pochodzą z Bazy Danych Lokalnych (BDL) prowadzonej przez Główny Urząd Statystyczny (GUS). BDL dostarcza szczegółowych informacji na temat różnych aspektów społecznych, gospodarczych i demograficznych, co czyni ją wiarygodnym źródłem danych do analizy rynku nieruchomości.
Dane zostały zebrane i przechowywane w formacie arkusza kalkulacyjnego za pomocą Excela online. Wybraliśmy ten format, ponieważ:
Ułatwia współpracę zespołową. Excel online pozwala na jednoczesną pracę nad arkuszem, co umożliwiło członkom zespołu dodawanie danych w jednym miejscu i bieżące śledzenie postępów.
Przejrzystość. Arkusz kalkulacyjny umożliwia łatwe przechowywanie dużej liczby zmiennych i ich edycję, a także szybki podgląd danych.
Uniwersalność. Dane w Excelu mogą być łatwo eksportowane do innych formatów, np.CSV lub XLS, co umożliwia dalsze przetwarzanie w R Studio, z którego korzystamy do dalszych etapów projektu.
Na etapie początkowej obróbki danych w Excelu wykonano następujące kroki:
Działania te pozwoliły na lepsze przygotowanie danych do dalszej analizy w R Studio.
W analizie cen nieruchomości uwzględniliśmy zarówno czynniki ekonomiczne, jak i demograficzne, ponieważ ceny mieszkań są wynikiem interakcji między popytem a podażą, a te z kolei są kształtowane przez różnorodne aspekty.
Czynniki ekonomiczne: Bezpośrednio wpływają na zdolność nabywczą konsumentów, koszty budowy i finansowanie transakcji. Ich analiza pozwala ocenić, w jakim stopniu zmienne makroekonomiczne oddziałują na rynek nieruchomości. Czynniki demograficzne: Są kluczowe w zrozumieniu struktury i dynamiki popytu na nieruchomości. Migracje, wzrost liczby gospodarstw domowych, czy zmiany w powierzchni mieszkań wpływają na zachowania zakupowe oraz trendy mieszkaniowe.
Wybór obu grup zmiennych pozwala na całościowe spojrzenie na rynek nieruchomości, uwzględniając nie tylko czynniki finansowe, ale także potrzeby ludności i ich zmienność.
Zgodność teoretyczna: Relacja zmiennej z objaśnianą powinna być zgodna z teorią ekonomiczną lub innymi założeniami dziedziny. Poniżej wykazujemy, że każda z wybranych zmiennych jest teoretycznie uzasadniona i może mieć wpływ na ceny nieruchomości.
Przeciętne miesięczne wynagrodzenia brutto. Wysokość wynagrodzeń odzwierciedla poziom dobrobytu społeczeństwa. Wyższe zarobki zwiększają zdolność kredytową i możliwości inwestycyjne, co podnosi popyt na nieruchomości. W konsekwencji, rosnący popyt prowadzi do wzrostu cen. Zgodnie z teorią konsumpcji, przy wyższych dochodach konsumenci są bardziej skłonni wydawać na dobra trwałe, takie jak mieszkania.
Stopa bezrobocia rejestrowanego. Wyższa stopa bezrobocia zmniejsza siłę nabywczą społeczeństwa i obniża popyt na mieszkania, co może powodować spadek cen nieruchomości. Z kolei niski poziom bezrobocia jest pozytywnym sygnałem dla rynku nieruchomości.
Inflacja. Inflacja wpływa na ceny nieruchomości w dwojaki sposób. Z jednej strony, w warunkach wysokiej inflacji rosną koszty budowy, co podnosi ceny nowych mieszkań. Z drugiej strony, nieruchomości mogą być postrzegane jako inwestycja chroniąca kapitał przed inflacją, co zwiększa ich atrakcyjność.
Wydatki w Dziale 700 - Gospodarka mieszkaniowa - wydatki budżetowe na gospodarkę mieszkaniową, obejmujące np. inwestycje w budownictwo mieszkaniowe czy wsparcie dla najemców.Wzrost wydatków w tym dziale stymuluje podaż nowych mieszkań, co może stabilizować ceny nieruchomości. Jednocześnie większe inwestycje w infrastrukturę mieszkaniową mogą podnieść atrakcyjność lokalnych rynków.
Dochody do dyspozycji brutto na 1 mieszkańca.Wyższe dochody do dyspozycji zwiększają możliwości finansowe gospodarstw domowych, co prowadzi do wzrostu popytu na mieszkania, a tym samym wzrostu cen nieruchomości.
Liczba lokali mieszkalnych sprzedanych w ramach transakcji rynkowych. Wysoka liczba transakcji wskazuje na dynamiczny rynek. Jeżeli popyt na nieruchomości przewyższa podaż, ceny rosną. Zgodnie z teorią popytu i podaży, większa aktywność zakupowa przy ograniczonej podaży prowadzi do wzrostu cen.
Powierzchnia użytkowa. Powierzchnia użytkowa jest jednym z kluczowych czynników wpływających na cenę jednostkową nieruchomości. Większe mieszkania są zwykle droższe, ale mogą być mniej dostępne dla przeciętnego nabywcy.
Małżeństwa zawarte. Zawarcie małżeństwa często wiąże się z tworzeniem nowego gospodarstwa domowego i poszukiwaniem mieszkania. Wzrost liczby małżeństw zwiększa popyt na nieruchomości, co może prowadzić do wzrostu cen.
Mieszkania oddane do użytkowania. Oddanie większej liczby mieszkań zwiększa podaż na rynku, co może ograniczać wzrost cen lub prowadzić do ich spadku. Zgodnie z teorią podaży, wzrost liczby dostępnych mieszkań przy stałym popycie obniża ich wartość.
Pozwolenia na budowę. Liczba wydanych pozwoleń wskazuje na przyszłą podaż mieszkań. Jeśli rośnie liczba pozwoleń, oznacza to potencjalny spadek cen w przyszłości w wyniku zwiększenia dostępności mieszkań.
Zameldowania. Wzrost liczby zameldowań sugeruje rosnącą migrację do danego regionu, co może zwiększać popyt na nieruchomości i prowadzić do wzrostu ich cen.
Wymeldowania. Wzrost liczby wymeldowań może sygnalizować odpływ ludności, co zmniejsza popyt na mieszkania i może prowadzić do spadku cen.
Saldo migracji. Dodatnie saldo migracji (więcej zameldowań niż wymeldowań) oznacza wzrost liczby ludności w danym regionie, co zwiększa popyt na mieszkania. Wysoki popyt w regionach o pozytywnym saldzie migracji może prowadzić do wzrostu cen nieruchomości. Negatywne saldo działa odwrotnie.
library(knitr)
polska_data_clean <- data_sheet1
na_counts <- colSums(is.na(polska_data_clean))
na_counts_df <- data.frame(Kolumna = names(na_counts), Liczba_NA = as.numeric(na_counts))
kable(na_counts_df, caption = "Liczba brakujących wartości (NA) w każdej kolumnie")
Kolumna | Liczba_NA |
---|---|
Rok | 0 |
Liczba_sprzedanych | 0 |
Powierzchnia_użytkowa | 0 |
Średnia cena za 1m2 | 0 |
Mediana cen | 0 |
Średnia_cena_lokali | 0 |
Wartość_lokali | 0 |
Wynagrodz_brutto | 0 |
Bezrobocie | 0 |
Małżeństwa | 0 |
Inflacja | 0 |
Wydatki_700 | 0 |
Mieszkania _oddane | 0 |
Pozwolenia_budowa | 0 |
Miesięczny_dochód | 0 |
# Przypisanie danych do odpowiednich zmiennych
DOLNOŚLĄSKIE_DATA <- data_sheet2
KUJAWSKO_POMORSKIE_DATA <- data_sheet3
LUBELSKIE_DATA <- data_sheet4
LUBUSKIE_DATA <- data_sheet5
ŁÓDZKIE_DATA <- data_sheet6
MAŁOPOLSKIE_DATA <- data_sheet7
OPOLSKIE_DATA <- data_sheet8
MAZOWIECKIE_DATA <- data_sheet9
PODKARPACKIE_DATA <- data_sheet10
PODLASKIE_DATA <- data_sheet11
POMORSKIE_DATA <- data_sheet12
ŚWIĘTOKRZYSKIE_DATA <- data_sheet13
WIELKOPOLSKIE_DATA <- data_sheet14
WARMIŃSKO_MAZURSKIE_DATA <- data_sheet15
ZACHODNIOPOMORSKIE_DATA <- data_sheet16
# Lista danych z odpowiednimi nazwami
data_list <- list(
DOLNOŚLĄSKIE = DOLNOŚLĄSKIE_DATA,
KUJAWSKO_POMORSKIE = KUJAWSKO_POMORSKIE_DATA,
LUBELSKIE = LUBELSKIE_DATA,
LUBUSKIE = LUBUSKIE_DATA,
ŁÓDZKIE = ŁÓDZKIE_DATA,
MAŁOPOLSKIE = MAŁOPOLSKIE_DATA,
OPOLSKIE = OPOLSKIE_DATA,
MAZOWIECKIE = MAZOWIECKIE_DATA,
PODKARPACKIE = PODKARPACKIE_DATA,
PODLASKIE = PODLASKIE_DATA,
POMORSKIE = POMORSKIE_DATA,
ŚWIĘTOKRZYSKIE = ŚWIĘTOKRZYSKIE_DATA,
WIELKOPOLSKIE = WIELKOPOLSKIE_DATA,
WARMIŃSKO_MAZURSKIE = WARMIŃSKO_MAZURSKIE_DATA,
ZACHODNIOPOMORSKIE = ZACHODNIOPOMORSKIE_DATA
)
# Obliczenie liczby braków dla każdej kolumny w każdym regionie
na_counts_list <- lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
na_counts <- colSums(is.na(data))
data.frame(
Kolumna = names(na_counts),
Liczba_NA = as.numeric(na_counts),
Region = region_name
)
})
# Połączenie wyników w jedną tabelę
na_counts_df <- bind_rows(na_counts_list)
# Przekształcenie danych na szeroki format (pivot)
na_pivot <- na_counts_df %>%
pivot_wider(names_from = Region, values_from = Liczba_NA, values_fill = 0)
# Prezentacja wyników
kable(na_pivot, caption = "Liczba brakujących wartości (NA) w każdej kolumnie dla każdego regionu")
Kolumna | DOLNOŚLĄSKIE | KUJAWSKO_POMORSKIE | LUBELSKIE | LUBUSKIE | ŁÓDZKIE | MAŁOPOLSKIE | OPOLSKIE | MAZOWIECKIE | PODKARPACKIE | PODLASKIE | POMORSKIE | ŚWIĘTOKRZYSKIE | WIELKOPOLSKIE | WARMIŃSKO_MAZURSKIE | ZACHODNIOPOMORSKIE |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
…1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Liczba_sprzedanych | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Powierzchnia_użytkowa | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Średnia cena za 1m2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mediana cen | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Średnia_cena_lokali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Wartość_lokali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Wynagrodz_brutto | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Bezrobocie | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Małżeństwa | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Inflacja | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Wydatki_700 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Mieszkania _oddane | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Pozwolenia_budowa | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Miesięczny_dochód | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Zameldowania | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Wymeldowania | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
Wyniki analizy wskazują, że brakujące wartości (NA
)
występują w różnych kolumnach dla poszczególnych regionów. Kluczowe
obserwacje to:
Brakujące dane w kluczowych kolumnach:
Kolumny takie jak Wynagrodz_brutto
,
Bezrobocie
, Małżeństwa
, Inflacja
,
Wydatki_700
, Mieszkania_oddane
zawierają
brakujące wartości w większości regionów.
Kolumny związane z nieruchomościami
(Liczba_sprzedanych
, Powierzchnia_użytkowa
,
Średnia cena za 1m2
, Mediana cen
) wykazują
brakujące dane głównie w regionie LUBUSKIE.
Kolumna bez nazwy:
…1
). Może to być źródłem nieścisłości w
analizie i wymaga poprawienia.Regiony bez braków:
ROZWIĄZANIE
# Funkcja, która usuwa ostatni wiersz, jeśli liczba wierszy wynosi 15
clean_data_list <- lapply(data_list, function(data) {
if (nrow(data) == 15) {
data <- data[-nrow(data), ] # Usuń ostatni wiersz
}
return(data)
})
# Aktualizacja danych w liście
data_list <- clean_data_list
# Sprawdzenie wyników (opcjonalnie)
print(lapply(data_list, nrow)) # Wyświetl liczbę wierszy w każdej ramce danych
## $DOLNOŚLĄSKIE
## [1] 14
##
## $KUJAWSKO_POMORSKIE
## [1] 14
##
## $LUBELSKIE
## [1] 14
##
## $LUBUSKIE
## [1] 14
##
## $ŁÓDZKIE
## [1] 14
##
## $MAŁOPOLSKIE
## [1] 14
##
## $OPOLSKIE
## [1] 14
##
## $MAZOWIECKIE
## [1] 14
##
## $PODKARPACKIE
## [1] 14
##
## $PODLASKIE
## [1] 14
##
## $POMORSKIE
## [1] 14
##
## $ŚWIĘTOKRZYSKIE
## [1] 14
##
## $WIELKOPOLSKIE
## [1] 14
##
## $WARMIŃSKO_MAZURSKIE
## [1] 14
##
## $ZACHODNIOPOMORSKIE
## [1] 14
# Zmiana nazwy pierwszej kolumny na "Rok" w każdej ramce danych
data_list <- lapply(data_list, function(data) {
colnames(data)[1] <- "Rok" # Zmień nazwę pierwszej kolumny
return(data)
})
# Sprawdzenie wyników (opcjonalne)
lapply(data_list, function(data) head(data))
## $DOLNOŚLĄSKIE
## # A tibble: 6 × 17
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <dbl> <dbl>
## 1 2010 14390 779887. 4248
## 2 2011 14136 766094. 4255
## 3 2012 14859 820648 3987
## 4 2013 17811 978110. 4337
## 5 2014 16431 901802. 4127
## 6 2015 18523 1012338. 4136
## # ℹ 13 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>, Zameldowania <dbl>, Wymeldowania <dbl>
##
## $KUJAWSKO_POMORSKIE
## # A tibble: 6 × 17
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 4454 <dbl [1]> <dbl [1]>
## 2 2011 5247 <dbl [1]> <dbl [1]>
## 3 2012 5629 <dbl [1]> <dbl [1]>
## 4 2013 6095 <dbl [1]> <dbl [1]>
## 5 2014 6056 <dbl [1]> <dbl [1]>
## 6 2015 6616 <dbl [1]> <dbl [1]>
## # ℹ 13 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>, Zameldowania <dbl>, Wymeldowania <dbl>
##
## $LUBELSKIE
## # A tibble: 6 × 17
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 2950 <dbl [1]> <dbl [1]>
## 2 2011 3106 <dbl [1]> <dbl [1]>
## 3 2012 3239 <dbl [1]> <dbl [1]>
## 4 2013 3388 <dbl [1]> <dbl [1]>
## 5 2014 2964 <dbl [1]> <dbl [1]>
## 6 2015 4441 <dbl [1]> <dbl [1]>
## # ℹ 13 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>, Zameldowania <dbl>,
## # Wymeldowania <dbl>, Miesięczny_dochód <list>
##
## $LUBUSKIE
## # A tibble: 6 × 15
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 3512 <dbl [1]> <dbl [1]>
## 2 2011 3749 <dbl [1]> <dbl [1]>
## 3 2012 4094 <dbl [1]> <dbl [1]>
## 4 2013 4028 <dbl [1]> <dbl [1]>
## 5 2014 3778 <dbl [1]> <dbl [1]>
## 6 2015 3936 <dbl [1]> <dbl [1]>
## # ℹ 11 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>
##
## $ŁÓDZKIE
## # A tibble: 6 × 17
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 3852 <dbl [1]> <dbl [1]>
## 2 2011 4363 <dbl [1]> <dbl [1]>
## 3 2012 4441 <dbl [1]> <dbl [1]>
## 4 2013 6859 <dbl [1]> <dbl [1]>
## 5 2014 6287 <dbl [1]> <dbl [1]>
## 6 2015 7207 <dbl [1]> <dbl [1]>
## # ℹ 13 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>, Zameldowania <dbl>,
## # Wymeldowania <dbl>, Miesięczny_dochód <chr>
##
## $MAŁOPOLSKIE
## # A tibble: 6 × 15
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 10510 <dbl [1]> <dbl [1]>
## 2 2011 9206 <dbl [1]> <dbl [1]>
## 3 2012 9276 <dbl [1]> <dbl [1]>
## 4 2013 12047 <dbl [1]> <dbl [1]>
## 5 2014 13441 <dbl [1]> <dbl [1]>
## 6 2015 13832 <dbl [1]> <dbl [1]>
## # ℹ 11 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>
##
## $OPOLSKIE
## # A tibble: 6 × 15
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 2352 <dbl [1]> <dbl [1]>
## 2 2011 2181 <dbl [1]> <dbl [1]>
## 3 2012 2445 <dbl [1]> <dbl [1]>
## 4 2013 2614 <dbl [1]> <dbl [1]>
## 5 2014 2469 <dbl [1]> <dbl [1]>
## 6 2015 2605 <dbl [1]> <dbl [1]>
## # ℹ 11 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>
##
## $MAZOWIECKIE
## # A tibble: 6 × 15
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <list> <list> <list>
## 1 2010 <dbl [1]> <dbl [1]> <dbl [1]>
## 2 2011 <dbl [1]> <dbl [1]> <dbl [1]>
## 3 2012 <dbl [1]> <dbl [1]> <dbl [1]>
## 4 2013 <dbl [1]> <dbl [1]> <dbl [1]>
## 5 2014 <dbl [1]> <dbl [1]> <dbl [1]>
## 6 2015 <dbl [1]> <dbl [1]> <dbl [1]>
## # ℹ 11 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>
##
## $PODKARPACKIE
## # A tibble: 6 × 17
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 1480 <dbl [1]> <dbl [1]>
## 2 2011 1747 <dbl [1]> <dbl [1]>
## 3 2012 2487 <dbl [1]> <dbl [1]>
## 4 2013 2766 <dbl [1]> <dbl [1]>
## 5 2014 2684 <dbl [1]> <dbl [1]>
## 6 2015 3647 <dbl [1]> <dbl [1]>
## # ℹ 13 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>, Zameldowania <dbl>,
## # Wymeldowania <dbl>, Miesięczny_dochód <list>
##
## $PODLASKIE
## # A tibble: 6 × 17
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 2496 <dbl [1]> <dbl [1]>
## 2 2011 2918 <dbl [1]> <dbl [1]>
## 3 2012 2970 <dbl [1]> <dbl [1]>
## 4 2013 3114 <dbl [1]> <dbl [1]>
## 5 2014 3635 <dbl [1]> <dbl [1]>
## 6 2015 3605 <dbl [1]> <dbl [1]>
## # ℹ 13 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>, Zameldowania <dbl>,
## # Wymeldowania <dbl>, Miesięczny_dochód <chr>
##
## $POMORSKIE
## # A tibble: 6 × 17
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 8968 <dbl [1]> <dbl [1]>
## 2 2011 11287 <dbl [1]> <dbl [1]>
## 3 2012 12396 <dbl [1]> <dbl [1]>
## 4 2013 14192 <dbl [1]> <dbl [1]>
## 5 2014 13573 <dbl [1]> <dbl [1]>
## 6 2015 15371 <dbl [1]> <dbl [1]>
## # ℹ 13 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>, Zameldowania <dbl>,
## # Wymeldowania <dbl>, Miesięczny_dochód <chr>
##
## $ŚWIĘTOKRZYSKIE
## # A tibble: 6 × 15
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <list> <list>
## 1 2010 1141 <dbl [1]> <dbl [1]>
## 2 2011 985 <dbl [1]> <dbl [1]>
## 3 2012 1503 <dbl [1]> <dbl [1]>
## 4 2013 1617 <dbl [1]> <dbl [1]>
## 5 2014 1667 <dbl [1]> <dbl [1]>
## 6 2015 1955 <dbl [1]> <dbl [1]>
## # ℹ 11 more variables: `Mediana cen` <list>, Średnia_cena_lokali <list>,
## # Wartość_lokali <list>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>
##
## $WIELKOPOLSKIE
## # A tibble: 6 × 15
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <dbl> <dbl>
## 1 2010 8903 498182. 4357
## 2 2011 9454 523039 4264
## 3 2012 10059 555624. 4138
## 4 2013 10613 584126. 4113
## 5 2014 11125 616795. 4182
## 6 2015 12401 682518. 4208
## # ℹ 11 more variables: `Mediana cen` <dbl>, Średnia_cena_lokali <dbl>,
## # Wartość_lokali <dbl>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>
##
## $WARMIŃSKO_MAZURSKIE
## # A tibble: 6 × 15
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <dbl> <dbl>
## 1 2010 5211 261072. 3398
## 2 2011 5055 257505. 3384
## 3 2012 5612 284344. 3215
## 4 2013 5542 280955 3127
## 5 2014 5963 302864. 3228
## 6 2015 6149 313261. 3181
## # ℹ 11 more variables: `Mediana cen` <dbl>, Średnia_cena_lokali <dbl>,
## # Wartość_lokali <dbl>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>
##
## $ZACHODNIOPOMORSKIE
## # A tibble: 6 × 15
## Rok Liczba_sprzedanych Powierzchnia_użytkowa `Średnia cena za 1m2`
## <dbl> <dbl> <dbl> <dbl>
## 1 2010 5859 312975. 3886
## 2 2011 6589 351718. 3778
## 3 2012 7271 387324. 3671
## 4 2013 7856 414591. 3690
## 5 2014 8044 422303. 3595
## 6 2015 7451 398731. 3493
## # ℹ 11 more variables: `Mediana cen` <dbl>, Średnia_cena_lokali <dbl>,
## # Wartość_lokali <dbl>, Wynagrodz_brutto <dbl>, Bezrobocie <dbl>,
## # Małżeństwa <dbl>, Inflacja <dbl>, Wydatki_700 <dbl>,
## # `Mieszkania _oddane` <dbl>, Pozwolenia_budowa <chr>,
## # Miesięczny_dochód <chr>
Pokazanie Wyników Ogólnie:
na_counts_list <- lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
na_counts <- colSums(is.na(data))
data.frame(
Kolumna = names(na_counts),
Liczba_NA = as.numeric(na_counts),
Region = region_name
)
})
# Połączenie wyników w jedną tabelę
na_counts_df <- do.call(rbind, na_counts_list)
# Przekształcenie danych na szeroki format (pivot)
library(tidyr)
na_pivot <- pivot_wider(
na_counts_df,
names_from = Region,
values_from = Liczba_NA,
values_fill = 0
)
# Prezentacja wyników
library(knitr)
kable(na_pivot, caption = "Liczba brakujących wartości (NA) w każdej kolumnie dla każdego regionu")
Kolumna | DOLNOŚLĄSKIE | KUJAWSKO_POMORSKIE | LUBELSKIE | LUBUSKIE | ŁÓDZKIE | MAŁOPOLSKIE | OPOLSKIE | MAZOWIECKIE | PODKARPACKIE | PODLASKIE | POMORSKIE | ŚWIĘTOKRZYSKIE | WIELKOPOLSKIE | WARMIŃSKO_MAZURSKIE | ZACHODNIOPOMORSKIE |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Rok | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Liczba_sprzedanych | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Powierzchnia_użytkowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Średnia cena za 1m2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mediana cen | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Średnia_cena_lokali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Wartość_lokali | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Wynagrodz_brutto | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bezrobocie | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Małżeństwa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Inflacja | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Wydatki_700 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mieszkania _oddane | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Pozwolenia_budowa | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Miesięczny_dochód | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Zameldowania | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Wymeldowania | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
unique_counts <- sapply(polska_data_clean, function(col) length(unique(col)))
unique_counts_df <- data.frame(
Kolumna = names(unique_counts),
Liczba_Unikalnych = as.numeric(unique_counts)
)
kable(unique_counts_df, caption = "Liczba unikalnych wartości w każdej kolumnie")
Kolumna | Liczba_Unikalnych |
---|---|
Rok | 14 |
Liczba_sprzedanych | 14 |
Powierzchnia_użytkowa | 14 |
Średnia cena za 1m2 | 14 |
Mediana cen | 14 |
Średnia_cena_lokali | 14 |
Wartość_lokali | 14 |
Wynagrodz_brutto | 14 |
Bezrobocie | 11 |
Małżeństwa | 14 |
Inflacja | 14 |
Wydatki_700 | 14 |
Mieszkania _oddane | 14 |
Pozwolenia_budowa | 14 |
Miesięczny_dochód | 14 |
Bezrobocie w niektórych latach było takie samo: Tak się zdarza
# Obliczenie liczby unikalnych wartości dla każdej kolumny w każdym regionie
unique_counts_list <- lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
unique_counts <- sapply(data, function(col) length(unique(col)))
data.frame(
Kolumna = names(unique_counts),
Liczba_Unikalnych = as.numeric(unique_counts),
Region = region_name
)
})
# Połączenie wyników w jedną tabelę
unique_counts_df <- bind_rows(unique_counts_list)
# Przekształcenie danych na szeroki format (pivot)
unique_pivot <- unique_counts_df %>%
pivot_wider(names_from = Region, values_from = Liczba_Unikalnych, values_fill = 0)
# Prezentacja wyników
kable(unique_pivot, caption = "Liczba unikalnych wartości w każdej kolumnie dla każdego regionu")
Kolumna | DOLNOŚLĄSKIE | KUJAWSKO_POMORSKIE | LUBELSKIE | LUBUSKIE | ŁÓDZKIE | MAŁOPOLSKIE | OPOLSKIE | MAZOWIECKIE | PODKARPACKIE | PODLASKIE | POMORSKIE | ŚWIĘTOKRZYSKIE | WIELKOPOLSKIE | WARMIŃSKO_MAZURSKIE | ZACHODNIOPOMORSKIE |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Rok | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Liczba_sprzedanych | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Powierzchnia_użytkowa | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Średnia cena za 1m2 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Mediana cen | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 13 |
Średnia_cena_lokali | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Wartość_lokali | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Wynagrodz_brutto | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Bezrobocie | 13 | 13 | 12 | 14 | 12 | 13 | 13 | 14 | 14 | 12 | 13 | 12 | 12 | 13 | 13 |
Małżeństwa | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Inflacja | 13 | 14 | 14 | 14 | 14 | 13 | 14 | 14 | 13 | 14 | 12 | 14 | 14 | 14 | 13 |
Wydatki_700 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Mieszkania _oddane | 14 | 14 | 14 | 13 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Pozwolenia_budowa | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Miesięczny_dochód | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 | 14 |
Zameldowania | 14 | 14 | 14 | 0 | 14 | 0 | 0 | 0 | 14 | 14 | 14 | 0 | 0 | 0 | 0 |
Wymeldowania | 14 | 14 | 14 | 0 | 14 | 0 | 0 | 0 | 14 | 14 | 14 | 0 | 0 | 0 | 0 |
1. Różnice w liczbie unikalnych wartości między regionami
Na przykład:
W kolumnie Bezrobocie
, regiony
LUBUSKIE i ŁÓDZKIE mają odpowiednio
tylko 13 i 12 unikalnych wartości, podczas gdy w większości regionów
jest ich 14 lub 15.
Kolumna Inflacja
wykazuje 13 unikalnych wartości w
regionie PODKARPACKIE, w porównaniu do 15 w innych
regionach.
2. Kolumny z zerową liczbą unikalnych wartości w niektórych regionach
Kolumny Zameldowania
i Wymeldowania
mają wartość 0
w regionach LUBUSKIE,
ŁÓDZKIE, MAŁOPOLSKIE,
OPOLSKIE, MAZOWIECKIE, co oznacza, że
te dane nie zostały ujęte w tych regionach.
Rozwiązanie:
Usunięcie zmiennych zameldowanie i wymeldowanie
# Usunięcie kolumn "Zameldowania" i "Wymeldowania" z każdej ramki danych w liście
data_list <- lapply(data_list, function(data) {
data <- data[, !colnames(data) %in% c("Zameldowania", "Wymeldowania")] # Usuń wybrane kolumny
return(data)
})
# Sprawdzenie wyników (opcjonalne)
lapply(data_list, colnames) # Wyświetl nazwy kolumn w każdej ramce danych
## $DOLNOŚLĄSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $KUJAWSKO_POMORSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $LUBELSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $LUBUSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $ŁÓDZKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $MAŁOPOLSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $OPOLSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $MAZOWIECKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $PODKARPACKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $PODLASKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $POMORSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $ŚWIĘTOKRZYSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $WIELKOPOLSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $WARMIŃSKO_MAZURSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
##
## $ZACHODNIOPOMORSKIE
## [1] "Rok" "Liczba_sprzedanych" "Powierzchnia_użytkowa"
## [4] "Średnia cena za 1m2" "Mediana cen" "Średnia_cena_lokali"
## [7] "Wartość_lokali" "Wynagrodz_brutto" "Bezrobocie"
## [10] "Małżeństwa" "Inflacja" "Wydatki_700"
## [13] "Mieszkania _oddane" "Pozwolenia_budowa" "Miesięczny_dochód"
# Sprawdzenie typu danych dla wszystkich zmiennych w każdej ramce danych
variable_types <- lapply(data_list, function(data) {
sapply(data, class) # Pobierz klasy (typy) wszystkich kolumn
})
# Wyświetlenie wyników (opcjonalne)
# Sprawdzenie typu danych dla każdej kolumny w każdej ramce danych
variable_types <- lapply(data_list, function(data) {
sapply(data, class) # Pobierz klasy (typy) wszystkich kolumn
})
# Przekształcenie wyników do formatu tabelarycznego
variable_types_df <- as.data.frame(do.call(cbind, variable_types))
variable_types_df <- cbind(Kolumna = rownames(variable_types_df), variable_types_df)
rownames(variable_types_df) <- NULL # Usuń indeksy wierszy
# Ustawianie nazw kolumn (pierwsza to Kolumna, reszta to regiony)
colnames(variable_types_df) <- c("Kolumna", names(data_list))
# Wyświetlenie tabeli w oczekiwanym formacie
library(knitr)
kable(variable_types_df, caption = "Typy zmiennych w każdej ramce danych")
Kolumna | DOLNOŚLĄSKIE | KUJAWSKO_POMORSKIE | LUBELSKIE | LUBUSKIE | ŁÓDZKIE | MAŁOPOLSKIE | OPOLSKIE | MAZOWIECKIE | PODKARPACKIE | PODLASKIE | POMORSKIE | ŚWIĘTOKRZYSKIE | WIELKOPOLSKIE | WARMIŃSKO_MAZURSKIE | ZACHODNIOPOMORSKIE |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Rok | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric |
Liczba_sprzedanych | numeric | numeric | numeric | numeric | numeric | numeric | numeric | list | numeric | numeric | numeric | numeric | numeric | numeric | numeric |
Powierzchnia_użytkowa | numeric | list | list | list | list | list | list | list | list | list | list | list | numeric | numeric | numeric |
Średnia cena za 1m2 | numeric | list | list | list | list | list | list | list | list | list | list | list | numeric | numeric | numeric |
Mediana cen | list | list | list | list | list | list | list | list | list | list | list | list | numeric | numeric | numeric |
Średnia_cena_lokali | list | list | list | list | list | list | list | list | list | list | list | list | numeric | numeric | numeric |
Wartość_lokali | list | list | list | list | list | list | list | list | list | list | list | list | numeric | numeric | numeric |
Wynagrodz_brutto | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric |
Bezrobocie | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric |
Małżeństwa | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric |
Inflacja | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric |
Wydatki_700 | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric |
Mieszkania _oddane | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric | numeric |
Pozwolenia_budowa | character | character | character | character | character | character | character | character | character | character | character | character | character | character | character |
Miesięczny_dochód | character | character | list | character | character | character | character | character | list | character | character | character | character | character | character |
Rozwiązanie
Próbne
# Funkcja do oczyszczania danych (usuwanie spacji, zamiana przecinków na kropki) Próbne
clean_column <- function(column) {
# Zamiana kolumny na character w celu przeprowadzenia operacji
column <- as.character(column)
column <- gsub(" ", "", column) # Usuń spacje
column <- gsub(",", ".", column) # Zamień przecinki na kropki
# Próba konwersji na numeryczne, jeśli nie powiedzie się, pozostaje jako tekst
cleaned_column <- suppressWarnings(as.numeric(column))
if (all(is.na(cleaned_column))) {
return(column) # Jeśli wszystkie wartości są NA po konwersji, zostaw jako tekst
} else {
return(cleaned_column) # Jeśli można, zwróć jako numeryczne
}
}
# Edycja wszystkich kolumn w każdej ramce danych
data_list <- lapply(data_list, function(data) {
data <- data.frame(lapply(data, clean_column)) # Oczyść każdą kolumnę
return(data)
})
# Sprawdzenie typu danych dla każdej kolumny w każdej ramce danych
data_characteristics <- lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Kolumna = colnames(data),
Typ = sapply(data, class),
Region = region_name
)
})
# Połączenie wyników w jedną tabelę
data_characteristics_df <- do.call(rbind, data_characteristics)
# Wyświetlenie wyników
library(knitr)
kable(data_characteristics_df, caption = "Charakterystyka danych w każdej ramce danych")
Kolumna | Typ | Region | |
---|---|---|---|
Rok | Rok | numeric | DOLNOŚLĄSKIE |
Liczba_sprzedanych | Liczba_sprzedanych | numeric | DOLNOŚLĄSKIE |
Powierzchnia_użytkowa | Powierzchnia_użytkowa | numeric | DOLNOŚLĄSKIE |
Średnia.cena.za.1m2 | Średnia.cena.za.1m2 | numeric | DOLNOŚLĄSKIE |
Mediana.cen | Mediana.cen | numeric | DOLNOŚLĄSKIE |
Średnia_cena_lokali | Średnia_cena_lokali | numeric | DOLNOŚLĄSKIE |
Wartość_lokali | Wartość_lokali | numeric | DOLNOŚLĄSKIE |
Wynagrodz_brutto | Wynagrodz_brutto | numeric | DOLNOŚLĄSKIE |
Bezrobocie | Bezrobocie | numeric | DOLNOŚLĄSKIE |
Małżeństwa | Małżeństwa | numeric | DOLNOŚLĄSKIE |
Inflacja | Inflacja | numeric | DOLNOŚLĄSKIE |
Wydatki_700 | Wydatki_700 | numeric | DOLNOŚLĄSKIE |
Mieszkania._oddane | Mieszkania._oddane | numeric | DOLNOŚLĄSKIE |
Pozwolenia_budowa | Pozwolenia_budowa | numeric | DOLNOŚLĄSKIE |
Miesięczny_dochód | Miesięczny_dochód | numeric | DOLNOŚLĄSKIE |
Rok1 | Rok | numeric | KUJAWSKO_POMORSKIE |
Liczba_sprzedanych1 | Liczba_sprzedanych | numeric | KUJAWSKO_POMORSKIE |
Powierzchnia_użytkowa1 | Powierzchnia_użytkowa | numeric | KUJAWSKO_POMORSKIE |
Średnia.cena.za.1m21 | Średnia.cena.za.1m2 | numeric | KUJAWSKO_POMORSKIE |
Mediana.cen1 | Mediana.cen | numeric | KUJAWSKO_POMORSKIE |
Średnia_cena_lokali1 | Średnia_cena_lokali | numeric | KUJAWSKO_POMORSKIE |
Wartość_lokali1 | Wartość_lokali | numeric | KUJAWSKO_POMORSKIE |
Wynagrodz_brutto1 | Wynagrodz_brutto | numeric | KUJAWSKO_POMORSKIE |
Bezrobocie1 | Bezrobocie | numeric | KUJAWSKO_POMORSKIE |
Małżeństwa1 | Małżeństwa | numeric | KUJAWSKO_POMORSKIE |
Inflacja1 | Inflacja | numeric | KUJAWSKO_POMORSKIE |
Wydatki_7001 | Wydatki_700 | numeric | KUJAWSKO_POMORSKIE |
Mieszkania._oddane1 | Mieszkania._oddane | numeric | KUJAWSKO_POMORSKIE |
Pozwolenia_budowa1 | Pozwolenia_budowa | numeric | KUJAWSKO_POMORSKIE |
Miesięczny_dochód1 | Miesięczny_dochód | numeric | KUJAWSKO_POMORSKIE |
Rok2 | Rok | numeric | LUBELSKIE |
Liczba_sprzedanych2 | Liczba_sprzedanych | numeric | LUBELSKIE |
Powierzchnia_użytkowa2 | Powierzchnia_użytkowa | numeric | LUBELSKIE |
Średnia.cena.za.1m22 | Średnia.cena.za.1m2 | numeric | LUBELSKIE |
Mediana.cen2 | Mediana.cen | numeric | LUBELSKIE |
Średnia_cena_lokali2 | Średnia_cena_lokali | numeric | LUBELSKIE |
Wartość_lokali2 | Wartość_lokali | numeric | LUBELSKIE |
Wynagrodz_brutto2 | Wynagrodz_brutto | numeric | LUBELSKIE |
Bezrobocie2 | Bezrobocie | numeric | LUBELSKIE |
Małżeństwa2 | Małżeństwa | numeric | LUBELSKIE |
Inflacja2 | Inflacja | numeric | LUBELSKIE |
Wydatki_7002 | Wydatki_700 | numeric | LUBELSKIE |
Mieszkania._oddane2 | Mieszkania._oddane | numeric | LUBELSKIE |
Pozwolenia_budowa2 | Pozwolenia_budowa | numeric | LUBELSKIE |
Miesięczny_dochód2 | Miesięczny_dochód | numeric | LUBELSKIE |
Rok3 | Rok | numeric | LUBUSKIE |
Liczba_sprzedanych3 | Liczba_sprzedanych | numeric | LUBUSKIE |
Powierzchnia_użytkowa3 | Powierzchnia_użytkowa | numeric | LUBUSKIE |
Średnia.cena.za.1m23 | Średnia.cena.za.1m2 | numeric | LUBUSKIE |
Mediana.cen3 | Mediana.cen | numeric | LUBUSKIE |
Średnia_cena_lokali3 | Średnia_cena_lokali | numeric | LUBUSKIE |
Wartość_lokali3 | Wartość_lokali | numeric | LUBUSKIE |
Wynagrodz_brutto3 | Wynagrodz_brutto | numeric | LUBUSKIE |
Bezrobocie3 | Bezrobocie | numeric | LUBUSKIE |
Małżeństwa3 | Małżeństwa | numeric | LUBUSKIE |
Inflacja3 | Inflacja | numeric | LUBUSKIE |
Wydatki_7003 | Wydatki_700 | numeric | LUBUSKIE |
Mieszkania._oddane3 | Mieszkania._oddane | numeric | LUBUSKIE |
Pozwolenia_budowa3 | Pozwolenia_budowa | numeric | LUBUSKIE |
Miesięczny_dochód3 | Miesięczny_dochód | numeric | LUBUSKIE |
Rok4 | Rok | numeric | ŁÓDZKIE |
Liczba_sprzedanych4 | Liczba_sprzedanych | numeric | ŁÓDZKIE |
Powierzchnia_użytkowa4 | Powierzchnia_użytkowa | numeric | ŁÓDZKIE |
Średnia.cena.za.1m24 | Średnia.cena.za.1m2 | numeric | ŁÓDZKIE |
Mediana.cen4 | Mediana.cen | numeric | ŁÓDZKIE |
Średnia_cena_lokali4 | Średnia_cena_lokali | numeric | ŁÓDZKIE |
Wartość_lokali4 | Wartość_lokali | numeric | ŁÓDZKIE |
Wynagrodz_brutto4 | Wynagrodz_brutto | numeric | ŁÓDZKIE |
Bezrobocie4 | Bezrobocie | numeric | ŁÓDZKIE |
Małżeństwa4 | Małżeństwa | numeric | ŁÓDZKIE |
Inflacja4 | Inflacja | numeric | ŁÓDZKIE |
Wydatki_7004 | Wydatki_700 | numeric | ŁÓDZKIE |
Mieszkania._oddane4 | Mieszkania._oddane | numeric | ŁÓDZKIE |
Pozwolenia_budowa4 | Pozwolenia_budowa | numeric | ŁÓDZKIE |
Miesięczny_dochód4 | Miesięczny_dochód | numeric | ŁÓDZKIE |
Rok5 | Rok | numeric | MAŁOPOLSKIE |
Liczba_sprzedanych5 | Liczba_sprzedanych | numeric | MAŁOPOLSKIE |
Powierzchnia_użytkowa5 | Powierzchnia_użytkowa | numeric | MAŁOPOLSKIE |
Średnia.cena.za.1m25 | Średnia.cena.za.1m2 | numeric | MAŁOPOLSKIE |
Mediana.cen5 | Mediana.cen | numeric | MAŁOPOLSKIE |
Średnia_cena_lokali5 | Średnia_cena_lokali | numeric | MAŁOPOLSKIE |
Wartość_lokali5 | Wartość_lokali | numeric | MAŁOPOLSKIE |
Wynagrodz_brutto5 | Wynagrodz_brutto | numeric | MAŁOPOLSKIE |
Bezrobocie5 | Bezrobocie | numeric | MAŁOPOLSKIE |
Małżeństwa5 | Małżeństwa | numeric | MAŁOPOLSKIE |
Inflacja5 | Inflacja | numeric | MAŁOPOLSKIE |
Wydatki_7005 | Wydatki_700 | numeric | MAŁOPOLSKIE |
Mieszkania._oddane5 | Mieszkania._oddane | numeric | MAŁOPOLSKIE |
Pozwolenia_budowa5 | Pozwolenia_budowa | numeric | MAŁOPOLSKIE |
Miesięczny_dochód5 | Miesięczny_dochód | numeric | MAŁOPOLSKIE |
Rok6 | Rok | numeric | OPOLSKIE |
Liczba_sprzedanych6 | Liczba_sprzedanych | numeric | OPOLSKIE |
Powierzchnia_użytkowa6 | Powierzchnia_użytkowa | numeric | OPOLSKIE |
Średnia.cena.za.1m26 | Średnia.cena.za.1m2 | numeric | OPOLSKIE |
Mediana.cen6 | Mediana.cen | numeric | OPOLSKIE |
Średnia_cena_lokali6 | Średnia_cena_lokali | numeric | OPOLSKIE |
Wartość_lokali6 | Wartość_lokali | numeric | OPOLSKIE |
Wynagrodz_brutto6 | Wynagrodz_brutto | numeric | OPOLSKIE |
Bezrobocie6 | Bezrobocie | numeric | OPOLSKIE |
Małżeństwa6 | Małżeństwa | numeric | OPOLSKIE |
Inflacja6 | Inflacja | numeric | OPOLSKIE |
Wydatki_7006 | Wydatki_700 | numeric | OPOLSKIE |
Mieszkania._oddane6 | Mieszkania._oddane | numeric | OPOLSKIE |
Pozwolenia_budowa6 | Pozwolenia_budowa | numeric | OPOLSKIE |
Miesięczny_dochód6 | Miesięczny_dochód | numeric | OPOLSKIE |
Rok7 | Rok | numeric | MAZOWIECKIE |
Liczba_sprzedanych7 | Liczba_sprzedanych | numeric | MAZOWIECKIE |
Powierzchnia_użytkowa7 | Powierzchnia_użytkowa | numeric | MAZOWIECKIE |
Średnia.cena.za.1m27 | Średnia.cena.za.1m2 | numeric | MAZOWIECKIE |
Mediana.cen7 | Mediana.cen | numeric | MAZOWIECKIE |
Średnia_cena_lokali7 | Średnia_cena_lokali | numeric | MAZOWIECKIE |
Wartość_lokali7 | Wartość_lokali | numeric | MAZOWIECKIE |
Wynagrodz_brutto7 | Wynagrodz_brutto | numeric | MAZOWIECKIE |
Bezrobocie7 | Bezrobocie | numeric | MAZOWIECKIE |
Małżeństwa7 | Małżeństwa | numeric | MAZOWIECKIE |
Inflacja7 | Inflacja | numeric | MAZOWIECKIE |
Wydatki_7007 | Wydatki_700 | numeric | MAZOWIECKIE |
Mieszkania._oddane7 | Mieszkania._oddane | numeric | MAZOWIECKIE |
Pozwolenia_budowa7 | Pozwolenia_budowa | numeric | MAZOWIECKIE |
Miesięczny_dochód7 | Miesięczny_dochód | numeric | MAZOWIECKIE |
Rok8 | Rok | numeric | PODKARPACKIE |
Liczba_sprzedanych8 | Liczba_sprzedanych | numeric | PODKARPACKIE |
Powierzchnia_użytkowa8 | Powierzchnia_użytkowa | numeric | PODKARPACKIE |
Średnia.cena.za.1m28 | Średnia.cena.za.1m2 | numeric | PODKARPACKIE |
Mediana.cen8 | Mediana.cen | numeric | PODKARPACKIE |
Średnia_cena_lokali8 | Średnia_cena_lokali | numeric | PODKARPACKIE |
Wartość_lokali8 | Wartość_lokali | numeric | PODKARPACKIE |
Wynagrodz_brutto8 | Wynagrodz_brutto | numeric | PODKARPACKIE |
Bezrobocie8 | Bezrobocie | numeric | PODKARPACKIE |
Małżeństwa8 | Małżeństwa | numeric | PODKARPACKIE |
Inflacja8 | Inflacja | numeric | PODKARPACKIE |
Wydatki_7008 | Wydatki_700 | numeric | PODKARPACKIE |
Mieszkania._oddane8 | Mieszkania._oddane | numeric | PODKARPACKIE |
Pozwolenia_budowa8 | Pozwolenia_budowa | numeric | PODKARPACKIE |
Miesięczny_dochód8 | Miesięczny_dochód | numeric | PODKARPACKIE |
Rok9 | Rok | numeric | PODLASKIE |
Liczba_sprzedanych9 | Liczba_sprzedanych | numeric | PODLASKIE |
Powierzchnia_użytkowa9 | Powierzchnia_użytkowa | numeric | PODLASKIE |
Średnia.cena.za.1m29 | Średnia.cena.za.1m2 | numeric | PODLASKIE |
Mediana.cen9 | Mediana.cen | numeric | PODLASKIE |
Średnia_cena_lokali9 | Średnia_cena_lokali | numeric | PODLASKIE |
Wartość_lokali9 | Wartość_lokali | numeric | PODLASKIE |
Wynagrodz_brutto9 | Wynagrodz_brutto | numeric | PODLASKIE |
Bezrobocie9 | Bezrobocie | numeric | PODLASKIE |
Małżeństwa9 | Małżeństwa | numeric | PODLASKIE |
Inflacja9 | Inflacja | numeric | PODLASKIE |
Wydatki_7009 | Wydatki_700 | numeric | PODLASKIE |
Mieszkania._oddane9 | Mieszkania._oddane | numeric | PODLASKIE |
Pozwolenia_budowa9 | Pozwolenia_budowa | numeric | PODLASKIE |
Miesięczny_dochód9 | Miesięczny_dochód | numeric | PODLASKIE |
Rok10 | Rok | numeric | POMORSKIE |
Liczba_sprzedanych10 | Liczba_sprzedanych | numeric | POMORSKIE |
Powierzchnia_użytkowa10 | Powierzchnia_użytkowa | numeric | POMORSKIE |
Średnia.cena.za.1m210 | Średnia.cena.za.1m2 | numeric | POMORSKIE |
Mediana.cen10 | Mediana.cen | numeric | POMORSKIE |
Średnia_cena_lokali10 | Średnia_cena_lokali | numeric | POMORSKIE |
Wartość_lokali10 | Wartość_lokali | numeric | POMORSKIE |
Wynagrodz_brutto10 | Wynagrodz_brutto | numeric | POMORSKIE |
Bezrobocie10 | Bezrobocie | numeric | POMORSKIE |
Małżeństwa10 | Małżeństwa | numeric | POMORSKIE |
Inflacja10 | Inflacja | numeric | POMORSKIE |
Wydatki_70010 | Wydatki_700 | numeric | POMORSKIE |
Mieszkania._oddane10 | Mieszkania._oddane | numeric | POMORSKIE |
Pozwolenia_budowa10 | Pozwolenia_budowa | numeric | POMORSKIE |
Miesięczny_dochód10 | Miesięczny_dochód | numeric | POMORSKIE |
Rok11 | Rok | numeric | ŚWIĘTOKRZYSKIE |
Liczba_sprzedanych11 | Liczba_sprzedanych | numeric | ŚWIĘTOKRZYSKIE |
Powierzchnia_użytkowa11 | Powierzchnia_użytkowa | numeric | ŚWIĘTOKRZYSKIE |
Średnia.cena.za.1m211 | Średnia.cena.za.1m2 | numeric | ŚWIĘTOKRZYSKIE |
Mediana.cen11 | Mediana.cen | numeric | ŚWIĘTOKRZYSKIE |
Średnia_cena_lokali11 | Średnia_cena_lokali | numeric | ŚWIĘTOKRZYSKIE |
Wartość_lokali11 | Wartość_lokali | numeric | ŚWIĘTOKRZYSKIE |
Wynagrodz_brutto11 | Wynagrodz_brutto | numeric | ŚWIĘTOKRZYSKIE |
Bezrobocie11 | Bezrobocie | numeric | ŚWIĘTOKRZYSKIE |
Małżeństwa11 | Małżeństwa | numeric | ŚWIĘTOKRZYSKIE |
Inflacja11 | Inflacja | numeric | ŚWIĘTOKRZYSKIE |
Wydatki_70011 | Wydatki_700 | numeric | ŚWIĘTOKRZYSKIE |
Mieszkania._oddane11 | Mieszkania._oddane | numeric | ŚWIĘTOKRZYSKIE |
Pozwolenia_budowa11 | Pozwolenia_budowa | numeric | ŚWIĘTOKRZYSKIE |
Miesięczny_dochód11 | Miesięczny_dochód | numeric | ŚWIĘTOKRZYSKIE |
Rok12 | Rok | numeric | WIELKOPOLSKIE |
Liczba_sprzedanych12 | Liczba_sprzedanych | numeric | WIELKOPOLSKIE |
Powierzchnia_użytkowa12 | Powierzchnia_użytkowa | numeric | WIELKOPOLSKIE |
Średnia.cena.za.1m212 | Średnia.cena.za.1m2 | numeric | WIELKOPOLSKIE |
Mediana.cen12 | Mediana.cen | numeric | WIELKOPOLSKIE |
Średnia_cena_lokali12 | Średnia_cena_lokali | numeric | WIELKOPOLSKIE |
Wartość_lokali12 | Wartość_lokali | numeric | WIELKOPOLSKIE |
Wynagrodz_brutto12 | Wynagrodz_brutto | numeric | WIELKOPOLSKIE |
Bezrobocie12 | Bezrobocie | numeric | WIELKOPOLSKIE |
Małżeństwa12 | Małżeństwa | numeric | WIELKOPOLSKIE |
Inflacja12 | Inflacja | numeric | WIELKOPOLSKIE |
Wydatki_70012 | Wydatki_700 | numeric | WIELKOPOLSKIE |
Mieszkania._oddane12 | Mieszkania._oddane | numeric | WIELKOPOLSKIE |
Pozwolenia_budowa12 | Pozwolenia_budowa | numeric | WIELKOPOLSKIE |
Miesięczny_dochód12 | Miesięczny_dochód | numeric | WIELKOPOLSKIE |
Rok13 | Rok | numeric | WARMIŃSKO_MAZURSKIE |
Liczba_sprzedanych13 | Liczba_sprzedanych | numeric | WARMIŃSKO_MAZURSKIE |
Powierzchnia_użytkowa13 | Powierzchnia_użytkowa | numeric | WARMIŃSKO_MAZURSKIE |
Średnia.cena.za.1m213 | Średnia.cena.za.1m2 | numeric | WARMIŃSKO_MAZURSKIE |
Mediana.cen13 | Mediana.cen | numeric | WARMIŃSKO_MAZURSKIE |
Średnia_cena_lokali13 | Średnia_cena_lokali | numeric | WARMIŃSKO_MAZURSKIE |
Wartość_lokali13 | Wartość_lokali | numeric | WARMIŃSKO_MAZURSKIE |
Wynagrodz_brutto13 | Wynagrodz_brutto | numeric | WARMIŃSKO_MAZURSKIE |
Bezrobocie13 | Bezrobocie | numeric | WARMIŃSKO_MAZURSKIE |
Małżeństwa13 | Małżeństwa | numeric | WARMIŃSKO_MAZURSKIE |
Inflacja13 | Inflacja | numeric | WARMIŃSKO_MAZURSKIE |
Wydatki_70013 | Wydatki_700 | numeric | WARMIŃSKO_MAZURSKIE |
Mieszkania._oddane13 | Mieszkania._oddane | numeric | WARMIŃSKO_MAZURSKIE |
Pozwolenia_budowa13 | Pozwolenia_budowa | numeric | WARMIŃSKO_MAZURSKIE |
Miesięczny_dochód13 | Miesięczny_dochód | numeric | WARMIŃSKO_MAZURSKIE |
Rok14 | Rok | numeric | ZACHODNIOPOMORSKIE |
Liczba_sprzedanych14 | Liczba_sprzedanych | numeric | ZACHODNIOPOMORSKIE |
Powierzchnia_użytkowa14 | Powierzchnia_użytkowa | numeric | ZACHODNIOPOMORSKIE |
Średnia.cena.za.1m214 | Średnia.cena.za.1m2 | numeric | ZACHODNIOPOMORSKIE |
Mediana.cen14 | Mediana.cen | numeric | ZACHODNIOPOMORSKIE |
Średnia_cena_lokali14 | Średnia_cena_lokali | numeric | ZACHODNIOPOMORSKIE |
Wartość_lokali14 | Wartość_lokali | numeric | ZACHODNIOPOMORSKIE |
Wynagrodz_brutto14 | Wynagrodz_brutto | numeric | ZACHODNIOPOMORSKIE |
Bezrobocie14 | Bezrobocie | numeric | ZACHODNIOPOMORSKIE |
Małżeństwa14 | Małżeństwa | numeric | ZACHODNIOPOMORSKIE |
Inflacja14 | Inflacja | numeric | ZACHODNIOPOMORSKIE |
Wydatki_70014 | Wydatki_700 | numeric | ZACHODNIOPOMORSKIE |
Mieszkania._oddane14 | Mieszkania._oddane | numeric | ZACHODNIOPOMORSKIE |
Pozwolenia_budowa14 | Pozwolenia_budowa | numeric | ZACHODNIOPOMORSKIE |
Miesięczny_dochód14 | Miesięczny_dochód | numeric | ZACHODNIOPOMORSKIE |
# Funkcja do oczyszczania danych
clean_numeric_column <- function(column) {
if (is.character(column)) {
column <- gsub(" ", "", column) # Usuń spacje
column <- gsub(",", ".", column) # Zamień przecinki na kropki
return(as.numeric(column)) # Konwertuj na numeryczne
} else if (is.list(column)) {
return(as.numeric(unlist(column))) # Jeśli lista, rozwiń i konwertuj
} else {
return(column) # Jeśli już numeryczne, pozostaw bez zmian
}
}
# Edycja wszystkich kolumn w każdej ramce danych
data_list <- lapply(data_list, function(data) {
data <- data.frame(lapply(data, clean_numeric_column)) # Oczyść każdą kolumnę
return(data)
})
# Sprawdzenie typu danych dla każdej kolumny w każdej ramce danych
data_characteristics <- lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Kolumna = colnames(data),
Typ = sapply(data, class),
Region = region_name
)
})
# Połączenie wyników w jedną tabelę
data_characteristics_df <- do.call(rbind, data_characteristics)
# Wyświetlenie wyników
library(knitr)
kable(data_characteristics_df, caption = "Charakterystyka danych w każdej ramce danych")
Kolumna | Typ | Region | |
---|---|---|---|
Rok | Rok | numeric | DOLNOŚLĄSKIE |
Liczba_sprzedanych | Liczba_sprzedanych | numeric | DOLNOŚLĄSKIE |
Powierzchnia_użytkowa | Powierzchnia_użytkowa | numeric | DOLNOŚLĄSKIE |
Średnia.cena.za.1m2 | Średnia.cena.za.1m2 | numeric | DOLNOŚLĄSKIE |
Mediana.cen | Mediana.cen | numeric | DOLNOŚLĄSKIE |
Średnia_cena_lokali | Średnia_cena_lokali | numeric | DOLNOŚLĄSKIE |
Wartość_lokali | Wartość_lokali | numeric | DOLNOŚLĄSKIE |
Wynagrodz_brutto | Wynagrodz_brutto | numeric | DOLNOŚLĄSKIE |
Bezrobocie | Bezrobocie | numeric | DOLNOŚLĄSKIE |
Małżeństwa | Małżeństwa | numeric | DOLNOŚLĄSKIE |
Inflacja | Inflacja | numeric | DOLNOŚLĄSKIE |
Wydatki_700 | Wydatki_700 | numeric | DOLNOŚLĄSKIE |
Mieszkania._oddane | Mieszkania._oddane | numeric | DOLNOŚLĄSKIE |
Pozwolenia_budowa | Pozwolenia_budowa | numeric | DOLNOŚLĄSKIE |
Miesięczny_dochód | Miesięczny_dochód | numeric | DOLNOŚLĄSKIE |
Rok1 | Rok | numeric | KUJAWSKO_POMORSKIE |
Liczba_sprzedanych1 | Liczba_sprzedanych | numeric | KUJAWSKO_POMORSKIE |
Powierzchnia_użytkowa1 | Powierzchnia_użytkowa | numeric | KUJAWSKO_POMORSKIE |
Średnia.cena.za.1m21 | Średnia.cena.za.1m2 | numeric | KUJAWSKO_POMORSKIE |
Mediana.cen1 | Mediana.cen | numeric | KUJAWSKO_POMORSKIE |
Średnia_cena_lokali1 | Średnia_cena_lokali | numeric | KUJAWSKO_POMORSKIE |
Wartość_lokali1 | Wartość_lokali | numeric | KUJAWSKO_POMORSKIE |
Wynagrodz_brutto1 | Wynagrodz_brutto | numeric | KUJAWSKO_POMORSKIE |
Bezrobocie1 | Bezrobocie | numeric | KUJAWSKO_POMORSKIE |
Małżeństwa1 | Małżeństwa | numeric | KUJAWSKO_POMORSKIE |
Inflacja1 | Inflacja | numeric | KUJAWSKO_POMORSKIE |
Wydatki_7001 | Wydatki_700 | numeric | KUJAWSKO_POMORSKIE |
Mieszkania._oddane1 | Mieszkania._oddane | numeric | KUJAWSKO_POMORSKIE |
Pozwolenia_budowa1 | Pozwolenia_budowa | numeric | KUJAWSKO_POMORSKIE |
Miesięczny_dochód1 | Miesięczny_dochód | numeric | KUJAWSKO_POMORSKIE |
Rok2 | Rok | numeric | LUBELSKIE |
Liczba_sprzedanych2 | Liczba_sprzedanych | numeric | LUBELSKIE |
Powierzchnia_użytkowa2 | Powierzchnia_użytkowa | numeric | LUBELSKIE |
Średnia.cena.za.1m22 | Średnia.cena.za.1m2 | numeric | LUBELSKIE |
Mediana.cen2 | Mediana.cen | numeric | LUBELSKIE |
Średnia_cena_lokali2 | Średnia_cena_lokali | numeric | LUBELSKIE |
Wartość_lokali2 | Wartość_lokali | numeric | LUBELSKIE |
Wynagrodz_brutto2 | Wynagrodz_brutto | numeric | LUBELSKIE |
Bezrobocie2 | Bezrobocie | numeric | LUBELSKIE |
Małżeństwa2 | Małżeństwa | numeric | LUBELSKIE |
Inflacja2 | Inflacja | numeric | LUBELSKIE |
Wydatki_7002 | Wydatki_700 | numeric | LUBELSKIE |
Mieszkania._oddane2 | Mieszkania._oddane | numeric | LUBELSKIE |
Pozwolenia_budowa2 | Pozwolenia_budowa | numeric | LUBELSKIE |
Miesięczny_dochód2 | Miesięczny_dochód | numeric | LUBELSKIE |
Rok3 | Rok | numeric | LUBUSKIE |
Liczba_sprzedanych3 | Liczba_sprzedanych | numeric | LUBUSKIE |
Powierzchnia_użytkowa3 | Powierzchnia_użytkowa | numeric | LUBUSKIE |
Średnia.cena.za.1m23 | Średnia.cena.za.1m2 | numeric | LUBUSKIE |
Mediana.cen3 | Mediana.cen | numeric | LUBUSKIE |
Średnia_cena_lokali3 | Średnia_cena_lokali | numeric | LUBUSKIE |
Wartość_lokali3 | Wartość_lokali | numeric | LUBUSKIE |
Wynagrodz_brutto3 | Wynagrodz_brutto | numeric | LUBUSKIE |
Bezrobocie3 | Bezrobocie | numeric | LUBUSKIE |
Małżeństwa3 | Małżeństwa | numeric | LUBUSKIE |
Inflacja3 | Inflacja | numeric | LUBUSKIE |
Wydatki_7003 | Wydatki_700 | numeric | LUBUSKIE |
Mieszkania._oddane3 | Mieszkania._oddane | numeric | LUBUSKIE |
Pozwolenia_budowa3 | Pozwolenia_budowa | numeric | LUBUSKIE |
Miesięczny_dochód3 | Miesięczny_dochód | numeric | LUBUSKIE |
Rok4 | Rok | numeric | ŁÓDZKIE |
Liczba_sprzedanych4 | Liczba_sprzedanych | numeric | ŁÓDZKIE |
Powierzchnia_użytkowa4 | Powierzchnia_użytkowa | numeric | ŁÓDZKIE |
Średnia.cena.za.1m24 | Średnia.cena.za.1m2 | numeric | ŁÓDZKIE |
Mediana.cen4 | Mediana.cen | numeric | ŁÓDZKIE |
Średnia_cena_lokali4 | Średnia_cena_lokali | numeric | ŁÓDZKIE |
Wartość_lokali4 | Wartość_lokali | numeric | ŁÓDZKIE |
Wynagrodz_brutto4 | Wynagrodz_brutto | numeric | ŁÓDZKIE |
Bezrobocie4 | Bezrobocie | numeric | ŁÓDZKIE |
Małżeństwa4 | Małżeństwa | numeric | ŁÓDZKIE |
Inflacja4 | Inflacja | numeric | ŁÓDZKIE |
Wydatki_7004 | Wydatki_700 | numeric | ŁÓDZKIE |
Mieszkania._oddane4 | Mieszkania._oddane | numeric | ŁÓDZKIE |
Pozwolenia_budowa4 | Pozwolenia_budowa | numeric | ŁÓDZKIE |
Miesięczny_dochód4 | Miesięczny_dochód | numeric | ŁÓDZKIE |
Rok5 | Rok | numeric | MAŁOPOLSKIE |
Liczba_sprzedanych5 | Liczba_sprzedanych | numeric | MAŁOPOLSKIE |
Powierzchnia_użytkowa5 | Powierzchnia_użytkowa | numeric | MAŁOPOLSKIE |
Średnia.cena.za.1m25 | Średnia.cena.za.1m2 | numeric | MAŁOPOLSKIE |
Mediana.cen5 | Mediana.cen | numeric | MAŁOPOLSKIE |
Średnia_cena_lokali5 | Średnia_cena_lokali | numeric | MAŁOPOLSKIE |
Wartość_lokali5 | Wartość_lokali | numeric | MAŁOPOLSKIE |
Wynagrodz_brutto5 | Wynagrodz_brutto | numeric | MAŁOPOLSKIE |
Bezrobocie5 | Bezrobocie | numeric | MAŁOPOLSKIE |
Małżeństwa5 | Małżeństwa | numeric | MAŁOPOLSKIE |
Inflacja5 | Inflacja | numeric | MAŁOPOLSKIE |
Wydatki_7005 | Wydatki_700 | numeric | MAŁOPOLSKIE |
Mieszkania._oddane5 | Mieszkania._oddane | numeric | MAŁOPOLSKIE |
Pozwolenia_budowa5 | Pozwolenia_budowa | numeric | MAŁOPOLSKIE |
Miesięczny_dochód5 | Miesięczny_dochód | numeric | MAŁOPOLSKIE |
Rok6 | Rok | numeric | OPOLSKIE |
Liczba_sprzedanych6 | Liczba_sprzedanych | numeric | OPOLSKIE |
Powierzchnia_użytkowa6 | Powierzchnia_użytkowa | numeric | OPOLSKIE |
Średnia.cena.za.1m26 | Średnia.cena.za.1m2 | numeric | OPOLSKIE |
Mediana.cen6 | Mediana.cen | numeric | OPOLSKIE |
Średnia_cena_lokali6 | Średnia_cena_lokali | numeric | OPOLSKIE |
Wartość_lokali6 | Wartość_lokali | numeric | OPOLSKIE |
Wynagrodz_brutto6 | Wynagrodz_brutto | numeric | OPOLSKIE |
Bezrobocie6 | Bezrobocie | numeric | OPOLSKIE |
Małżeństwa6 | Małżeństwa | numeric | OPOLSKIE |
Inflacja6 | Inflacja | numeric | OPOLSKIE |
Wydatki_7006 | Wydatki_700 | numeric | OPOLSKIE |
Mieszkania._oddane6 | Mieszkania._oddane | numeric | OPOLSKIE |
Pozwolenia_budowa6 | Pozwolenia_budowa | numeric | OPOLSKIE |
Miesięczny_dochód6 | Miesięczny_dochód | numeric | OPOLSKIE |
Rok7 | Rok | numeric | MAZOWIECKIE |
Liczba_sprzedanych7 | Liczba_sprzedanych | numeric | MAZOWIECKIE |
Powierzchnia_użytkowa7 | Powierzchnia_użytkowa | numeric | MAZOWIECKIE |
Średnia.cena.za.1m27 | Średnia.cena.za.1m2 | numeric | MAZOWIECKIE |
Mediana.cen7 | Mediana.cen | numeric | MAZOWIECKIE |
Średnia_cena_lokali7 | Średnia_cena_lokali | numeric | MAZOWIECKIE |
Wartość_lokali7 | Wartość_lokali | numeric | MAZOWIECKIE |
Wynagrodz_brutto7 | Wynagrodz_brutto | numeric | MAZOWIECKIE |
Bezrobocie7 | Bezrobocie | numeric | MAZOWIECKIE |
Małżeństwa7 | Małżeństwa | numeric | MAZOWIECKIE |
Inflacja7 | Inflacja | numeric | MAZOWIECKIE |
Wydatki_7007 | Wydatki_700 | numeric | MAZOWIECKIE |
Mieszkania._oddane7 | Mieszkania._oddane | numeric | MAZOWIECKIE |
Pozwolenia_budowa7 | Pozwolenia_budowa | numeric | MAZOWIECKIE |
Miesięczny_dochód7 | Miesięczny_dochód | numeric | MAZOWIECKIE |
Rok8 | Rok | numeric | PODKARPACKIE |
Liczba_sprzedanych8 | Liczba_sprzedanych | numeric | PODKARPACKIE |
Powierzchnia_użytkowa8 | Powierzchnia_użytkowa | numeric | PODKARPACKIE |
Średnia.cena.za.1m28 | Średnia.cena.za.1m2 | numeric | PODKARPACKIE |
Mediana.cen8 | Mediana.cen | numeric | PODKARPACKIE |
Średnia_cena_lokali8 | Średnia_cena_lokali | numeric | PODKARPACKIE |
Wartość_lokali8 | Wartość_lokali | numeric | PODKARPACKIE |
Wynagrodz_brutto8 | Wynagrodz_brutto | numeric | PODKARPACKIE |
Bezrobocie8 | Bezrobocie | numeric | PODKARPACKIE |
Małżeństwa8 | Małżeństwa | numeric | PODKARPACKIE |
Inflacja8 | Inflacja | numeric | PODKARPACKIE |
Wydatki_7008 | Wydatki_700 | numeric | PODKARPACKIE |
Mieszkania._oddane8 | Mieszkania._oddane | numeric | PODKARPACKIE |
Pozwolenia_budowa8 | Pozwolenia_budowa | numeric | PODKARPACKIE |
Miesięczny_dochód8 | Miesięczny_dochód | numeric | PODKARPACKIE |
Rok9 | Rok | numeric | PODLASKIE |
Liczba_sprzedanych9 | Liczba_sprzedanych | numeric | PODLASKIE |
Powierzchnia_użytkowa9 | Powierzchnia_użytkowa | numeric | PODLASKIE |
Średnia.cena.za.1m29 | Średnia.cena.za.1m2 | numeric | PODLASKIE |
Mediana.cen9 | Mediana.cen | numeric | PODLASKIE |
Średnia_cena_lokali9 | Średnia_cena_lokali | numeric | PODLASKIE |
Wartość_lokali9 | Wartość_lokali | numeric | PODLASKIE |
Wynagrodz_brutto9 | Wynagrodz_brutto | numeric | PODLASKIE |
Bezrobocie9 | Bezrobocie | numeric | PODLASKIE |
Małżeństwa9 | Małżeństwa | numeric | PODLASKIE |
Inflacja9 | Inflacja | numeric | PODLASKIE |
Wydatki_7009 | Wydatki_700 | numeric | PODLASKIE |
Mieszkania._oddane9 | Mieszkania._oddane | numeric | PODLASKIE |
Pozwolenia_budowa9 | Pozwolenia_budowa | numeric | PODLASKIE |
Miesięczny_dochód9 | Miesięczny_dochód | numeric | PODLASKIE |
Rok10 | Rok | numeric | POMORSKIE |
Liczba_sprzedanych10 | Liczba_sprzedanych | numeric | POMORSKIE |
Powierzchnia_użytkowa10 | Powierzchnia_użytkowa | numeric | POMORSKIE |
Średnia.cena.za.1m210 | Średnia.cena.za.1m2 | numeric | POMORSKIE |
Mediana.cen10 | Mediana.cen | numeric | POMORSKIE |
Średnia_cena_lokali10 | Średnia_cena_lokali | numeric | POMORSKIE |
Wartość_lokali10 | Wartość_lokali | numeric | POMORSKIE |
Wynagrodz_brutto10 | Wynagrodz_brutto | numeric | POMORSKIE |
Bezrobocie10 | Bezrobocie | numeric | POMORSKIE |
Małżeństwa10 | Małżeństwa | numeric | POMORSKIE |
Inflacja10 | Inflacja | numeric | POMORSKIE |
Wydatki_70010 | Wydatki_700 | numeric | POMORSKIE |
Mieszkania._oddane10 | Mieszkania._oddane | numeric | POMORSKIE |
Pozwolenia_budowa10 | Pozwolenia_budowa | numeric | POMORSKIE |
Miesięczny_dochód10 | Miesięczny_dochód | numeric | POMORSKIE |
Rok11 | Rok | numeric | ŚWIĘTOKRZYSKIE |
Liczba_sprzedanych11 | Liczba_sprzedanych | numeric | ŚWIĘTOKRZYSKIE |
Powierzchnia_użytkowa11 | Powierzchnia_użytkowa | numeric | ŚWIĘTOKRZYSKIE |
Średnia.cena.za.1m211 | Średnia.cena.za.1m2 | numeric | ŚWIĘTOKRZYSKIE |
Mediana.cen11 | Mediana.cen | numeric | ŚWIĘTOKRZYSKIE |
Średnia_cena_lokali11 | Średnia_cena_lokali | numeric | ŚWIĘTOKRZYSKIE |
Wartość_lokali11 | Wartość_lokali | numeric | ŚWIĘTOKRZYSKIE |
Wynagrodz_brutto11 | Wynagrodz_brutto | numeric | ŚWIĘTOKRZYSKIE |
Bezrobocie11 | Bezrobocie | numeric | ŚWIĘTOKRZYSKIE |
Małżeństwa11 | Małżeństwa | numeric | ŚWIĘTOKRZYSKIE |
Inflacja11 | Inflacja | numeric | ŚWIĘTOKRZYSKIE |
Wydatki_70011 | Wydatki_700 | numeric | ŚWIĘTOKRZYSKIE |
Mieszkania._oddane11 | Mieszkania._oddane | numeric | ŚWIĘTOKRZYSKIE |
Pozwolenia_budowa11 | Pozwolenia_budowa | numeric | ŚWIĘTOKRZYSKIE |
Miesięczny_dochód11 | Miesięczny_dochód | numeric | ŚWIĘTOKRZYSKIE |
Rok12 | Rok | numeric | WIELKOPOLSKIE |
Liczba_sprzedanych12 | Liczba_sprzedanych | numeric | WIELKOPOLSKIE |
Powierzchnia_użytkowa12 | Powierzchnia_użytkowa | numeric | WIELKOPOLSKIE |
Średnia.cena.za.1m212 | Średnia.cena.za.1m2 | numeric | WIELKOPOLSKIE |
Mediana.cen12 | Mediana.cen | numeric | WIELKOPOLSKIE |
Średnia_cena_lokali12 | Średnia_cena_lokali | numeric | WIELKOPOLSKIE |
Wartość_lokali12 | Wartość_lokali | numeric | WIELKOPOLSKIE |
Wynagrodz_brutto12 | Wynagrodz_brutto | numeric | WIELKOPOLSKIE |
Bezrobocie12 | Bezrobocie | numeric | WIELKOPOLSKIE |
Małżeństwa12 | Małżeństwa | numeric | WIELKOPOLSKIE |
Inflacja12 | Inflacja | numeric | WIELKOPOLSKIE |
Wydatki_70012 | Wydatki_700 | numeric | WIELKOPOLSKIE |
Mieszkania._oddane12 | Mieszkania._oddane | numeric | WIELKOPOLSKIE |
Pozwolenia_budowa12 | Pozwolenia_budowa | numeric | WIELKOPOLSKIE |
Miesięczny_dochód12 | Miesięczny_dochód | numeric | WIELKOPOLSKIE |
Rok13 | Rok | numeric | WARMIŃSKO_MAZURSKIE |
Liczba_sprzedanych13 | Liczba_sprzedanych | numeric | WARMIŃSKO_MAZURSKIE |
Powierzchnia_użytkowa13 | Powierzchnia_użytkowa | numeric | WARMIŃSKO_MAZURSKIE |
Średnia.cena.za.1m213 | Średnia.cena.za.1m2 | numeric | WARMIŃSKO_MAZURSKIE |
Mediana.cen13 | Mediana.cen | numeric | WARMIŃSKO_MAZURSKIE |
Średnia_cena_lokali13 | Średnia_cena_lokali | numeric | WARMIŃSKO_MAZURSKIE |
Wartość_lokali13 | Wartość_lokali | numeric | WARMIŃSKO_MAZURSKIE |
Wynagrodz_brutto13 | Wynagrodz_brutto | numeric | WARMIŃSKO_MAZURSKIE |
Bezrobocie13 | Bezrobocie | numeric | WARMIŃSKO_MAZURSKIE |
Małżeństwa13 | Małżeństwa | numeric | WARMIŃSKO_MAZURSKIE |
Inflacja13 | Inflacja | numeric | WARMIŃSKO_MAZURSKIE |
Wydatki_70013 | Wydatki_700 | numeric | WARMIŃSKO_MAZURSKIE |
Mieszkania._oddane13 | Mieszkania._oddane | numeric | WARMIŃSKO_MAZURSKIE |
Pozwolenia_budowa13 | Pozwolenia_budowa | numeric | WARMIŃSKO_MAZURSKIE |
Miesięczny_dochód13 | Miesięczny_dochód | numeric | WARMIŃSKO_MAZURSKIE |
Rok14 | Rok | numeric | ZACHODNIOPOMORSKIE |
Liczba_sprzedanych14 | Liczba_sprzedanych | numeric | ZACHODNIOPOMORSKIE |
Powierzchnia_użytkowa14 | Powierzchnia_użytkowa | numeric | ZACHODNIOPOMORSKIE |
Średnia.cena.za.1m214 | Średnia.cena.za.1m2 | numeric | ZACHODNIOPOMORSKIE |
Mediana.cen14 | Mediana.cen | numeric | ZACHODNIOPOMORSKIE |
Średnia_cena_lokali14 | Średnia_cena_lokali | numeric | ZACHODNIOPOMORSKIE |
Wartość_lokali14 | Wartość_lokali | numeric | ZACHODNIOPOMORSKIE |
Wynagrodz_brutto14 | Wynagrodz_brutto | numeric | ZACHODNIOPOMORSKIE |
Bezrobocie14 | Bezrobocie | numeric | ZACHODNIOPOMORSKIE |
Małżeństwa14 | Małżeństwa | numeric | ZACHODNIOPOMORSKIE |
Inflacja14 | Inflacja | numeric | ZACHODNIOPOMORSKIE |
Wydatki_70014 | Wydatki_700 | numeric | ZACHODNIOPOMORSKIE |
Mieszkania._oddane14 | Mieszkania._oddane | numeric | ZACHODNIOPOMORSKIE |
Pozwolenia_budowa14 | Pozwolenia_budowa | numeric | ZACHODNIOPOMORSKIE |
Miesięczny_dochód14 | Miesięczny_dochód | numeric | ZACHODNIOPOMORSKIE |
# Funkcja do analizy ramki danych
analyze_dataframe <- function(data) {
data.frame(
Kolumna = colnames(data), # Nazwa kolumny
Typ = sapply(data, class), # Typ danych w kolumnie
Liczba_NA = colSums(is.na(data)), # Liczba brakujących wartości w kolumnie
Liczba_Wierszy = nrow(data) # Liczba wierszy (ta sama dla wszystkich kolumn)
)
}
# Analiza każdej ramki danych w data_list
analysis_list <- lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
result <- analyze_dataframe(data)
result$Region <- region_name # Dodanie informacji o regionie
return(result)
})
# Połączenie wyników w jedną tabelę
analysis_df <- do.call(rbind, analysis_list)
# Wyświetlenie wyników w wygodnym formacie
library(knitr)
kable(analysis_df, caption = "Analiza danych w data_list")
Kolumna | Typ | Liczba_NA | Liczba_Wierszy | Region | |
---|---|---|---|---|---|
Rok | Rok | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Liczba_sprzedanych | Liczba_sprzedanych | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Powierzchnia_użytkowa | Powierzchnia_użytkowa | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Średnia.cena.za.1m2 | Średnia.cena.za.1m2 | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Mediana.cen | Mediana.cen | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Średnia_cena_lokali | Średnia_cena_lokali | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Wartość_lokali | Wartość_lokali | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Wynagrodz_brutto | Wynagrodz_brutto | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Bezrobocie | Bezrobocie | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Małżeństwa | Małżeństwa | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Inflacja | Inflacja | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Wydatki_700 | Wydatki_700 | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Mieszkania._oddane | Mieszkania._oddane | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Pozwolenia_budowa | Pozwolenia_budowa | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Miesięczny_dochód | Miesięczny_dochód | numeric | 0 | 14 | DOLNOŚLĄSKIE |
Rok1 | Rok | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Liczba_sprzedanych1 | Liczba_sprzedanych | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Powierzchnia_użytkowa1 | Powierzchnia_użytkowa | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Średnia.cena.za.1m21 | Średnia.cena.za.1m2 | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Mediana.cen1 | Mediana.cen | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Średnia_cena_lokali1 | Średnia_cena_lokali | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Wartość_lokali1 | Wartość_lokali | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Wynagrodz_brutto1 | Wynagrodz_brutto | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Bezrobocie1 | Bezrobocie | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Małżeństwa1 | Małżeństwa | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Inflacja1 | Inflacja | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Wydatki_7001 | Wydatki_700 | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Mieszkania._oddane1 | Mieszkania._oddane | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Pozwolenia_budowa1 | Pozwolenia_budowa | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Miesięczny_dochód1 | Miesięczny_dochód | numeric | 0 | 14 | KUJAWSKO_POMORSKIE |
Rok2 | Rok | numeric | 0 | 14 | LUBELSKIE |
Liczba_sprzedanych2 | Liczba_sprzedanych | numeric | 0 | 14 | LUBELSKIE |
Powierzchnia_użytkowa2 | Powierzchnia_użytkowa | numeric | 0 | 14 | LUBELSKIE |
Średnia.cena.za.1m22 | Średnia.cena.za.1m2 | numeric | 0 | 14 | LUBELSKIE |
Mediana.cen2 | Mediana.cen | numeric | 0 | 14 | LUBELSKIE |
Średnia_cena_lokali2 | Średnia_cena_lokali | numeric | 0 | 14 | LUBELSKIE |
Wartość_lokali2 | Wartość_lokali | numeric | 0 | 14 | LUBELSKIE |
Wynagrodz_brutto2 | Wynagrodz_brutto | numeric | 0 | 14 | LUBELSKIE |
Bezrobocie2 | Bezrobocie | numeric | 0 | 14 | LUBELSKIE |
Małżeństwa2 | Małżeństwa | numeric | 0 | 14 | LUBELSKIE |
Inflacja2 | Inflacja | numeric | 0 | 14 | LUBELSKIE |
Wydatki_7002 | Wydatki_700 | numeric | 0 | 14 | LUBELSKIE |
Mieszkania._oddane2 | Mieszkania._oddane | numeric | 0 | 14 | LUBELSKIE |
Pozwolenia_budowa2 | Pozwolenia_budowa | numeric | 0 | 14 | LUBELSKIE |
Miesięczny_dochód2 | Miesięczny_dochód | numeric | 0 | 14 | LUBELSKIE |
Rok3 | Rok | numeric | 0 | 14 | LUBUSKIE |
Liczba_sprzedanych3 | Liczba_sprzedanych | numeric | 0 | 14 | LUBUSKIE |
Powierzchnia_użytkowa3 | Powierzchnia_użytkowa | numeric | 0 | 14 | LUBUSKIE |
Średnia.cena.za.1m23 | Średnia.cena.za.1m2 | numeric | 0 | 14 | LUBUSKIE |
Mediana.cen3 | Mediana.cen | numeric | 0 | 14 | LUBUSKIE |
Średnia_cena_lokali3 | Średnia_cena_lokali | numeric | 0 | 14 | LUBUSKIE |
Wartość_lokali3 | Wartość_lokali | numeric | 0 | 14 | LUBUSKIE |
Wynagrodz_brutto3 | Wynagrodz_brutto | numeric | 0 | 14 | LUBUSKIE |
Bezrobocie3 | Bezrobocie | numeric | 0 | 14 | LUBUSKIE |
Małżeństwa3 | Małżeństwa | numeric | 0 | 14 | LUBUSKIE |
Inflacja3 | Inflacja | numeric | 0 | 14 | LUBUSKIE |
Wydatki_7003 | Wydatki_700 | numeric | 0 | 14 | LUBUSKIE |
Mieszkania._oddane3 | Mieszkania._oddane | numeric | 0 | 14 | LUBUSKIE |
Pozwolenia_budowa3 | Pozwolenia_budowa | numeric | 0 | 14 | LUBUSKIE |
Miesięczny_dochód3 | Miesięczny_dochód | numeric | 0 | 14 | LUBUSKIE |
Rok4 | Rok | numeric | 0 | 14 | ŁÓDZKIE |
Liczba_sprzedanych4 | Liczba_sprzedanych | numeric | 0 | 14 | ŁÓDZKIE |
Powierzchnia_użytkowa4 | Powierzchnia_użytkowa | numeric | 0 | 14 | ŁÓDZKIE |
Średnia.cena.za.1m24 | Średnia.cena.za.1m2 | numeric | 0 | 14 | ŁÓDZKIE |
Mediana.cen4 | Mediana.cen | numeric | 0 | 14 | ŁÓDZKIE |
Średnia_cena_lokali4 | Średnia_cena_lokali | numeric | 0 | 14 | ŁÓDZKIE |
Wartość_lokali4 | Wartość_lokali | numeric | 0 | 14 | ŁÓDZKIE |
Wynagrodz_brutto4 | Wynagrodz_brutto | numeric | 0 | 14 | ŁÓDZKIE |
Bezrobocie4 | Bezrobocie | numeric | 0 | 14 | ŁÓDZKIE |
Małżeństwa4 | Małżeństwa | numeric | 0 | 14 | ŁÓDZKIE |
Inflacja4 | Inflacja | numeric | 0 | 14 | ŁÓDZKIE |
Wydatki_7004 | Wydatki_700 | numeric | 0 | 14 | ŁÓDZKIE |
Mieszkania._oddane4 | Mieszkania._oddane | numeric | 0 | 14 | ŁÓDZKIE |
Pozwolenia_budowa4 | Pozwolenia_budowa | numeric | 0 | 14 | ŁÓDZKIE |
Miesięczny_dochód4 | Miesięczny_dochód | numeric | 0 | 14 | ŁÓDZKIE |
Rok5 | Rok | numeric | 0 | 14 | MAŁOPOLSKIE |
Liczba_sprzedanych5 | Liczba_sprzedanych | numeric | 0 | 14 | MAŁOPOLSKIE |
Powierzchnia_użytkowa5 | Powierzchnia_użytkowa | numeric | 0 | 14 | MAŁOPOLSKIE |
Średnia.cena.za.1m25 | Średnia.cena.za.1m2 | numeric | 0 | 14 | MAŁOPOLSKIE |
Mediana.cen5 | Mediana.cen | numeric | 0 | 14 | MAŁOPOLSKIE |
Średnia_cena_lokali5 | Średnia_cena_lokali | numeric | 0 | 14 | MAŁOPOLSKIE |
Wartość_lokali5 | Wartość_lokali | numeric | 0 | 14 | MAŁOPOLSKIE |
Wynagrodz_brutto5 | Wynagrodz_brutto | numeric | 0 | 14 | MAŁOPOLSKIE |
Bezrobocie5 | Bezrobocie | numeric | 0 | 14 | MAŁOPOLSKIE |
Małżeństwa5 | Małżeństwa | numeric | 0 | 14 | MAŁOPOLSKIE |
Inflacja5 | Inflacja | numeric | 0 | 14 | MAŁOPOLSKIE |
Wydatki_7005 | Wydatki_700 | numeric | 0 | 14 | MAŁOPOLSKIE |
Mieszkania._oddane5 | Mieszkania._oddane | numeric | 0 | 14 | MAŁOPOLSKIE |
Pozwolenia_budowa5 | Pozwolenia_budowa | numeric | 0 | 14 | MAŁOPOLSKIE |
Miesięczny_dochód5 | Miesięczny_dochód | numeric | 0 | 14 | MAŁOPOLSKIE |
Rok6 | Rok | numeric | 0 | 14 | OPOLSKIE |
Liczba_sprzedanych6 | Liczba_sprzedanych | numeric | 0 | 14 | OPOLSKIE |
Powierzchnia_użytkowa6 | Powierzchnia_użytkowa | numeric | 0 | 14 | OPOLSKIE |
Średnia.cena.za.1m26 | Średnia.cena.za.1m2 | numeric | 0 | 14 | OPOLSKIE |
Mediana.cen6 | Mediana.cen | numeric | 0 | 14 | OPOLSKIE |
Średnia_cena_lokali6 | Średnia_cena_lokali | numeric | 0 | 14 | OPOLSKIE |
Wartość_lokali6 | Wartość_lokali | numeric | 0 | 14 | OPOLSKIE |
Wynagrodz_brutto6 | Wynagrodz_brutto | numeric | 0 | 14 | OPOLSKIE |
Bezrobocie6 | Bezrobocie | numeric | 0 | 14 | OPOLSKIE |
Małżeństwa6 | Małżeństwa | numeric | 0 | 14 | OPOLSKIE |
Inflacja6 | Inflacja | numeric | 0 | 14 | OPOLSKIE |
Wydatki_7006 | Wydatki_700 | numeric | 0 | 14 | OPOLSKIE |
Mieszkania._oddane6 | Mieszkania._oddane | numeric | 0 | 14 | OPOLSKIE |
Pozwolenia_budowa6 | Pozwolenia_budowa | numeric | 0 | 14 | OPOLSKIE |
Miesięczny_dochód6 | Miesięczny_dochód | numeric | 0 | 14 | OPOLSKIE |
Rok7 | Rok | numeric | 0 | 14 | MAZOWIECKIE |
Liczba_sprzedanych7 | Liczba_sprzedanych | numeric | 0 | 14 | MAZOWIECKIE |
Powierzchnia_użytkowa7 | Powierzchnia_użytkowa | numeric | 0 | 14 | MAZOWIECKIE |
Średnia.cena.za.1m27 | Średnia.cena.za.1m2 | numeric | 0 | 14 | MAZOWIECKIE |
Mediana.cen7 | Mediana.cen | numeric | 0 | 14 | MAZOWIECKIE |
Średnia_cena_lokali7 | Średnia_cena_lokali | numeric | 0 | 14 | MAZOWIECKIE |
Wartość_lokali7 | Wartość_lokali | numeric | 0 | 14 | MAZOWIECKIE |
Wynagrodz_brutto7 | Wynagrodz_brutto | numeric | 0 | 14 | MAZOWIECKIE |
Bezrobocie7 | Bezrobocie | numeric | 0 | 14 | MAZOWIECKIE |
Małżeństwa7 | Małżeństwa | numeric | 0 | 14 | MAZOWIECKIE |
Inflacja7 | Inflacja | numeric | 0 | 14 | MAZOWIECKIE |
Wydatki_7007 | Wydatki_700 | numeric | 0 | 14 | MAZOWIECKIE |
Mieszkania._oddane7 | Mieszkania._oddane | numeric | 0 | 14 | MAZOWIECKIE |
Pozwolenia_budowa7 | Pozwolenia_budowa | numeric | 0 | 14 | MAZOWIECKIE |
Miesięczny_dochód7 | Miesięczny_dochód | numeric | 0 | 14 | MAZOWIECKIE |
Rok8 | Rok | numeric | 0 | 14 | PODKARPACKIE |
Liczba_sprzedanych8 | Liczba_sprzedanych | numeric | 0 | 14 | PODKARPACKIE |
Powierzchnia_użytkowa8 | Powierzchnia_użytkowa | numeric | 0 | 14 | PODKARPACKIE |
Średnia.cena.za.1m28 | Średnia.cena.za.1m2 | numeric | 0 | 14 | PODKARPACKIE |
Mediana.cen8 | Mediana.cen | numeric | 0 | 14 | PODKARPACKIE |
Średnia_cena_lokali8 | Średnia_cena_lokali | numeric | 0 | 14 | PODKARPACKIE |
Wartość_lokali8 | Wartość_lokali | numeric | 0 | 14 | PODKARPACKIE |
Wynagrodz_brutto8 | Wynagrodz_brutto | numeric | 0 | 14 | PODKARPACKIE |
Bezrobocie8 | Bezrobocie | numeric | 0 | 14 | PODKARPACKIE |
Małżeństwa8 | Małżeństwa | numeric | 0 | 14 | PODKARPACKIE |
Inflacja8 | Inflacja | numeric | 0 | 14 | PODKARPACKIE |
Wydatki_7008 | Wydatki_700 | numeric | 0 | 14 | PODKARPACKIE |
Mieszkania._oddane8 | Mieszkania._oddane | numeric | 0 | 14 | PODKARPACKIE |
Pozwolenia_budowa8 | Pozwolenia_budowa | numeric | 0 | 14 | PODKARPACKIE |
Miesięczny_dochód8 | Miesięczny_dochód | numeric | 0 | 14 | PODKARPACKIE |
Rok9 | Rok | numeric | 0 | 14 | PODLASKIE |
Liczba_sprzedanych9 | Liczba_sprzedanych | numeric | 0 | 14 | PODLASKIE |
Powierzchnia_użytkowa9 | Powierzchnia_użytkowa | numeric | 0 | 14 | PODLASKIE |
Średnia.cena.za.1m29 | Średnia.cena.za.1m2 | numeric | 0 | 14 | PODLASKIE |
Mediana.cen9 | Mediana.cen | numeric | 0 | 14 | PODLASKIE |
Średnia_cena_lokali9 | Średnia_cena_lokali | numeric | 0 | 14 | PODLASKIE |
Wartość_lokali9 | Wartość_lokali | numeric | 0 | 14 | PODLASKIE |
Wynagrodz_brutto9 | Wynagrodz_brutto | numeric | 0 | 14 | PODLASKIE |
Bezrobocie9 | Bezrobocie | numeric | 0 | 14 | PODLASKIE |
Małżeństwa9 | Małżeństwa | numeric | 0 | 14 | PODLASKIE |
Inflacja9 | Inflacja | numeric | 0 | 14 | PODLASKIE |
Wydatki_7009 | Wydatki_700 | numeric | 0 | 14 | PODLASKIE |
Mieszkania._oddane9 | Mieszkania._oddane | numeric | 0 | 14 | PODLASKIE |
Pozwolenia_budowa9 | Pozwolenia_budowa | numeric | 0 | 14 | PODLASKIE |
Miesięczny_dochód9 | Miesięczny_dochód | numeric | 0 | 14 | PODLASKIE |
Rok10 | Rok | numeric | 0 | 14 | POMORSKIE |
Liczba_sprzedanych10 | Liczba_sprzedanych | numeric | 0 | 14 | POMORSKIE |
Powierzchnia_użytkowa10 | Powierzchnia_użytkowa | numeric | 0 | 14 | POMORSKIE |
Średnia.cena.za.1m210 | Średnia.cena.za.1m2 | numeric | 0 | 14 | POMORSKIE |
Mediana.cen10 | Mediana.cen | numeric | 0 | 14 | POMORSKIE |
Średnia_cena_lokali10 | Średnia_cena_lokali | numeric | 0 | 14 | POMORSKIE |
Wartość_lokali10 | Wartość_lokali | numeric | 0 | 14 | POMORSKIE |
Wynagrodz_brutto10 | Wynagrodz_brutto | numeric | 0 | 14 | POMORSKIE |
Bezrobocie10 | Bezrobocie | numeric | 0 | 14 | POMORSKIE |
Małżeństwa10 | Małżeństwa | numeric | 0 | 14 | POMORSKIE |
Inflacja10 | Inflacja | numeric | 0 | 14 | POMORSKIE |
Wydatki_70010 | Wydatki_700 | numeric | 0 | 14 | POMORSKIE |
Mieszkania._oddane10 | Mieszkania._oddane | numeric | 0 | 14 | POMORSKIE |
Pozwolenia_budowa10 | Pozwolenia_budowa | numeric | 0 | 14 | POMORSKIE |
Miesięczny_dochód10 | Miesięczny_dochód | numeric | 0 | 14 | POMORSKIE |
Rok11 | Rok | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Liczba_sprzedanych11 | Liczba_sprzedanych | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Powierzchnia_użytkowa11 | Powierzchnia_użytkowa | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Średnia.cena.za.1m211 | Średnia.cena.za.1m2 | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Mediana.cen11 | Mediana.cen | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Średnia_cena_lokali11 | Średnia_cena_lokali | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Wartość_lokali11 | Wartość_lokali | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Wynagrodz_brutto11 | Wynagrodz_brutto | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Bezrobocie11 | Bezrobocie | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Małżeństwa11 | Małżeństwa | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Inflacja11 | Inflacja | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Wydatki_70011 | Wydatki_700 | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Mieszkania._oddane11 | Mieszkania._oddane | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Pozwolenia_budowa11 | Pozwolenia_budowa | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Miesięczny_dochód11 | Miesięczny_dochód | numeric | 0 | 14 | ŚWIĘTOKRZYSKIE |
Rok12 | Rok | numeric | 0 | 14 | WIELKOPOLSKIE |
Liczba_sprzedanych12 | Liczba_sprzedanych | numeric | 0 | 14 | WIELKOPOLSKIE |
Powierzchnia_użytkowa12 | Powierzchnia_użytkowa | numeric | 0 | 14 | WIELKOPOLSKIE |
Średnia.cena.za.1m212 | Średnia.cena.za.1m2 | numeric | 0 | 14 | WIELKOPOLSKIE |
Mediana.cen12 | Mediana.cen | numeric | 0 | 14 | WIELKOPOLSKIE |
Średnia_cena_lokali12 | Średnia_cena_lokali | numeric | 0 | 14 | WIELKOPOLSKIE |
Wartość_lokali12 | Wartość_lokali | numeric | 0 | 14 | WIELKOPOLSKIE |
Wynagrodz_brutto12 | Wynagrodz_brutto | numeric | 0 | 14 | WIELKOPOLSKIE |
Bezrobocie12 | Bezrobocie | numeric | 0 | 14 | WIELKOPOLSKIE |
Małżeństwa12 | Małżeństwa | numeric | 0 | 14 | WIELKOPOLSKIE |
Inflacja12 | Inflacja | numeric | 0 | 14 | WIELKOPOLSKIE |
Wydatki_70012 | Wydatki_700 | numeric | 0 | 14 | WIELKOPOLSKIE |
Mieszkania._oddane12 | Mieszkania._oddane | numeric | 0 | 14 | WIELKOPOLSKIE |
Pozwolenia_budowa12 | Pozwolenia_budowa | numeric | 0 | 14 | WIELKOPOLSKIE |
Miesięczny_dochód12 | Miesięczny_dochód | numeric | 0 | 14 | WIELKOPOLSKIE |
Rok13 | Rok | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Liczba_sprzedanych13 | Liczba_sprzedanych | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Powierzchnia_użytkowa13 | Powierzchnia_użytkowa | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Średnia.cena.za.1m213 | Średnia.cena.za.1m2 | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Mediana.cen13 | Mediana.cen | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Średnia_cena_lokali13 | Średnia_cena_lokali | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Wartość_lokali13 | Wartość_lokali | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Wynagrodz_brutto13 | Wynagrodz_brutto | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Bezrobocie13 | Bezrobocie | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Małżeństwa13 | Małżeństwa | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Inflacja13 | Inflacja | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Wydatki_70013 | Wydatki_700 | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Mieszkania._oddane13 | Mieszkania._oddane | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Pozwolenia_budowa13 | Pozwolenia_budowa | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Miesięczny_dochód13 | Miesięczny_dochód | numeric | 0 | 14 | WARMIŃSKO_MAZURSKIE |
Rok14 | Rok | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Liczba_sprzedanych14 | Liczba_sprzedanych | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Powierzchnia_użytkowa14 | Powierzchnia_użytkowa | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Średnia.cena.za.1m214 | Średnia.cena.za.1m2 | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Mediana.cen14 | Mediana.cen | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Średnia_cena_lokali14 | Średnia_cena_lokali | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Wartość_lokali14 | Wartość_lokali | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Wynagrodz_brutto14 | Wynagrodz_brutto | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Bezrobocie14 | Bezrobocie | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Małżeństwa14 | Małżeństwa | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Inflacja14 | Inflacja | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Wydatki_70014 | Wydatki_700 | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Mieszkania._oddane14 | Mieszkania._oddane | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Pozwolenia_budowa14 | Pozwolenia_budowa | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
Miesięczny_dochód14 | Miesięczny_dochód | numeric | 0 | 14 | ZACHODNIOPOMORSKIE |
library(ggplot2)
## Warning: pakiet 'ggplot2' został zbudowany w wersji R 4.3.3
# Tworzenie wykresów liniowych dla wszystkich zmiennych w każdej ramce danych
for (region_name in names(data_list)) {
data <- data_list[[region_name]]
# Iteracja przez wszystkie kolumny (poza "Rok", która będzie osią X)
for (col_name in colnames(data)[-1]) {
# Tworzenie wykresu
plot <- ggplot(data, aes_string(x = "Rok", y = col_name)) +
geom_line(color = "blue") +
theme_minimal() +
labs(
title = paste("Wykres dla", col_name, "w regionie", region_name),
x = "Rok",
y = col_name
)
# Zapis wykresu do pliku (opcjonalnie) lub wyświetlenie
print(plot)
}
}
## Warning: `aes_string()` was deprecated in ggplot2 3.0.0.
## ℹ Please use tidy evaluation idioms with `aes()`.
## ℹ See also `vignette("ggplot2-in-packages")` for more information.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
library(ggplot2)
# Lista nazw kolumn (zmiennych) do iteracji
variable_names <- colnames(data_list[[1]])[-1] # Załóżmy, że kolumna "Rok" jest w każdej ramce danych
# Iteracja przez wszystkie zmienne
for (variable_name in variable_names) {
# Tworzenie zbiorczej ramki danych dla danej zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[["Rok"]],
Wartość = data[[variable_name]],
Region = region_name
)
}))
# Tworzenie wykresu dla danej zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste("Wykres dla zmiennej:", variable_name),
x = "Rok",
y = variable_name
)
# Wyświetlenie wykresu
print(plot)
}
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Liczba_sprzedanych"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Liczba_sprzedanych'),
x = 'Rok',
y = 'Liczba_sprzedanych'
)
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
library(knitr)
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Liczba_sprzedanych'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 21473.286 | 21107.0 | 5870.6545 | 14136 | 33606 | 14 |
KUJAWSKO_POMORSKIE | 7636.357 | 7481.0 | 2065.1281 | 4454 | 10639 | 14 |
LUBELSKIE | 5602.214 | 5449.5 | 2279.9850 | 2950 | 8990 | 14 |
LUBUSKIE | 5129.929 | 5046.0 | 1269.4297 | 3512 | 6933 | 14 |
MAZOWIECKIE | 30302.429 | 34209.0 | 9510.2805 | 17046 | 43304 | 14 |
MAŁOPOLSKIE | 15159.071 | 14051.0 | 4455.5374 | 9206 | 22952 | 14 |
OPOLSKIE | 3282.143 | 3093.0 | 868.6602 | 2181 | 4453 | 14 |
PODKARPACKIE | 4150.357 | 3513.0 | 2048.5028 | 1480 | 7595 | 14 |
PODLASKIE | 4562.071 | 4417.0 | 1509.6835 | 2496 | 7154 | 14 |
POMORSKIE | 18096.571 | 18012.5 | 5575.8446 | 8968 | 26367 | 14 |
WARMIŃSKO_MAZURSKIE | 7380.286 | 7063.0 | 1850.8795 | 5055 | 10089 | 14 |
WIELKOPOLSKIE | 14542.786 | 13701.5 | 4536.0854 | 8903 | 22247 | 14 |
ZACHODNIOPOMORSKIE | 8436.071 | 8308.5 | 1679.6986 | 5859 | 11678 | 14 |
ŁÓDZKIE | 8485.214 | 8048.5 | 3177.2109 | 3852 | 13501 | 14 |
ŚWIĘTOKRZYSKIE | 2262.214 | 2088.0 | 849.1341 | 985 | 3581 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Powierzchnia_użytkowa"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Powierzchnia_użytkowa'),
x = 'Rok',
y = 'Powierzchnia_użytkowa'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
library(knitr)
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Powierzchnia_użytkowa'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 1184739.7 | 1166527.1 | 332991.75 | 766093.8 | 1886647.0 | 14 |
KUJAWSKO_POMORSKIE | 391549.8 | 384970.7 | 105793.42 | 227609.6 | 554379.6 | 14 |
LUBELSKIE | 293409.9 | 285910.9 | 118067.76 | 155034.5 | 462302.9 | 14 |
LUBUSKIE | 270291.2 | 264851.0 | 69235.28 | 181949.6 | 367625.5 | 14 |
MAZOWIECKIE | 1749036.6 | 1912800.0 | 570064.03 | 961549.1 | 2546477.4 | 14 |
MAŁOPOLSKIE | 795151.6 | 726318.2 | 240252.04 | 485136.7 | 1208748.6 | 14 |
OPOLSKIE | 178755.2 | 168680.4 | 48820.27 | 114732.5 | 247661.5 | 14 |
PODKARPACKIE | 224704.2 | 180799.5 | 115291.76 | 75777.7 | 408252.4 | 14 |
PODLASKIE | 235851.1 | 225445.0 | 77879.76 | 132953.3 | 375563.2 | 14 |
POMORSKIE | 995266.3 | 982591.9 | 316697.61 | 487259.3 | 1494232.1 | 14 |
WARMIŃSKO_MAZURSKIE | 380892.0 | 364418.2 | 100523.64 | 257505.1 | 531073.2 | 14 |
WIELKOPOLSKIE | 814753.6 | 745225.8 | 261810.73 | 498182.1 | 1253588.1 | 14 |
ZACHODNIOPOMORSKIE | 449099.2 | 431151.7 | 91104.65 | 312974.6 | 624831.7 | 14 |
ŁÓDZKIE | 430736.0 | 407618.0 | 155746.09 | 199049.1 | 677240.5 | 14 |
ŚWIĘTOKRZYSKIE | 115278.9 | 104464.7 | 44111.40 | 49135.8 | 185752.2 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Miesięczny_dochód"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Miesięczny_dochód'),
x = 'Rok',
y = 'Miesięczny_dochód'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Miesięczny_dochód'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 1733.731 | 1606.105 | 452.6426 | 1239.17 | 2739.90 | 14 |
KUJAWSKO_POMORSKIE | 1544.111 | 1382.590 | 442.8368 | 1108.94 | 2534.15 | 14 |
LUBELSKIE | 1468.379 | 1367.860 | 439.5289 | 978.49 | 2461.44 | 14 |
LUBUSKIE | 1654.417 | 1544.865 | 474.7911 | 1153.06 | 2745.66 | 14 |
MAZOWIECKIE | 2035.965 | 1846.485 | 469.9396 | 1601.97 | 3208.99 | 14 |
MAŁOPOLSKIE | 1610.324 | 1457.685 | 490.8983 | 1107.54 | 2789.94 | 14 |
OPOLSKIE | 1495.866 | 1450.325 | 302.6984 | 1115.73 | 2128.76 | 14 |
PODKARPACKIE | 1324.744 | 1194.200 | 406.0204 | 907.28 | 2280.97 | 14 |
PODLASKIE | 1619.856 | 1502.700 | 475.2813 | 1103.20 | 2681.20 | 14 |
POMORSKIE | 1630.394 | 1604.695 | 309.0178 | 1243.12 | 2291.82 | 14 |
WARMIŃSKO_MAZURSKIE | 1530.942 | 1433.970 | 434.7732 | 1096.87 | 2428.06 | 14 |
WIELKOPOLSKIE | 1561.446 | 1503.315 | 411.9283 | 1125.74 | 2495.02 | 14 |
ZACHODNIOPOMORSKIE | 1673.039 | 1567.750 | 469.5398 | 1186.91 | 2800.81 | 14 |
ŁÓDZKIE | 1632.252 | 1512.125 | 432.0110 | 1178.73 | 2555.46 | 14 |
ŚWIĘTOKRZYSKIE | 1476.675 | 1369.320 | 408.9410 | 1026.36 | 2418.76 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Pozwolenia_budowa"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Pozwolenia_budowa'),
x = 'Rok',
y = 'Pozwolenia_budowa'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Pozwolenia_budowa'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 21359.500 | 20619.5 | 6036.778 | 13561 | 29805 | 14 |
KUJAWSKO_POMORSKIE | 10021.929 | 9085.5 | 3033.350 | 6252 | 16220 | 14 |
LUBELSKIE | 9073.071 | 8405.0 | 2584.029 | 5687 | 15368 | 14 |
LUBUSKIE | 5379.643 | 5732.5 | 1526.925 | 2766 | 8044 | 14 |
MAZOWIECKIE | 43029.071 | 43484.0 | 10118.078 | 26501 | 62568 | 14 |
MAŁOPOLSKIE | 21788.929 | 23130.0 | 4507.729 | 13548 | 29745 | 14 |
OPOLSKIE | 2943.857 | 2583.5 | 1021.992 | 1682 | 4895 | 14 |
PODKARPACKIE | 9995.857 | 9823.0 | 2187.369 | 7071 | 13532 | 14 |
PODLASKIE | 6279.429 | 5570.5 | 2141.934 | 3806 | 10444 | 14 |
POMORSKIE | 19282.929 | 18708.0 | 6605.778 | 10636 | 31296 | 14 |
WARMIŃSKO_MAZURSKIE | 6895.786 | 6449.5 | 2114.808 | 3743 | 10865 | 14 |
WIELKOPOLSKIE | 23758.571 | 23307.0 | 6577.647 | 14275 | 37193 | 14 |
ZACHODNIOPOMORSKIE | 10091.429 | 9951.0 | 3134.997 | 5279 | 13949 | 14 |
ŁÓDZKIE | 12463.071 | 11220.5 | 4955.871 | 7403 | 22694 | 14 |
ŚWIĘTOKRZYSKIE | 4628.429 | 4505.0 | 1033.443 | 2985 | 6596 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Mieszkania._oddane"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Mieszkania._oddane'),
x = 'Rok',
y = 'Mieszkania._oddane'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Mieszkania._oddane'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 9513.643 | 9452.5 | 5245.9972 | 157 | 16913 | 14 |
KUJAWSKO_POMORSKIE | 3505.857 | 2785.5 | 1398.6157 | 1939 | 6265 | 14 |
LUBELSKIE | 3157.071 | 3138.0 | 1115.0635 | 1643 | 4983 | 14 |
LUBUSKIE | 1762.429 | 1629.0 | 743.0970 | 332 | 2883 | 14 |
MAZOWIECKIE | 20797.500 | 18583.0 | 10920.6878 | 312 | 35308 | 14 |
MAŁOPOLSKIE | 9989.929 | 10451.5 | 3115.0015 | 5352 | 14222 | 14 |
OPOLSKIE | 889.500 | 732.0 | 512.3340 | 161 | 1773 | 14 |
PODKARPACKIE | 2404.643 | 2434.0 | 1403.8305 | 254 | 4548 | 14 |
PODLASKIE | 3016.929 | 2582.5 | 966.8825 | 2036 | 4887 | 14 |
POMORSKIE | 9520.643 | 9003.0 | 4832.0810 | 649 | 15813 | 14 |
WARMIŃSKO_MAZURSKIE | 2271.071 | 2433.5 | 1579.5034 | 38 | 4936 | 14 |
WIELKOPOLSKIE | 9898.143 | 10052.0 | 4607.3794 | 639 | 16961 | 14 |
ZACHODNIOPOMORSKIE | 3873.429 | 3435.0 | 2176.6839 | 529 | 7071 | 14 |
ŁÓDZKIE | 3898.286 | 3101.5 | 2067.1724 | 1535 | 7365 | 14 |
ŚWIĘTOKRZYSKIE | 1026.500 | 851.5 | 411.8840 | 568 | 1688 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Wydatki_700"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Wydatki_700'),
x = 'Rok',
y = 'Wydatki_700'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Wydatki_700'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 6807887 | 5676406.0 | 5401080.7 | 1486237.69 | 22034049 | 14 |
KUJAWSKO_POMORSKIE | 2228121 | 1923638.9 | 1909506.5 | 239413.23 | 7026111 | 14 |
LUBELSKIE | 7319308 | 6589009.2 | 3027448.6 | 1748865.80 | 14198353 | 14 |
LUBUSKIE | 1114756 | 708827.9 | 903800.7 | 253641.25 | 3297951 | 14 |
MAZOWIECKIE | 25082308 | 21470909.3 | 13035256.1 | 5760884.52 | 53946285 | 14 |
MAŁOPOLSKIE | 2284567 | 1566711.4 | 1693281.3 | 981252.20 | 6046041 | 14 |
OPOLSKIE | 2741549 | 2193002.0 | 2814045.5 | 164821.03 | 9367141 | 14 |
PODKARPACKIE | 2998259 | 1106674.3 | 5495165.0 | 431816.35 | 21164133 | 14 |
PODLASKIE | 1939308 | 1431040.7 | 2194086.6 | 276362.92 | 8369383 | 14 |
POMORSKIE | 24801997 | 21513722.9 | 14352531.2 | 7369897.44 | 63884435 | 14 |
WARMIŃSKO_MAZURSKIE | 8514501 | 9060096.3 | 5629257.0 | 1081024.51 | 17343080 | 14 |
WIELKOPOLSKIE | 3547439 | 2914526.7 | 3111401.9 | 888055.35 | 12297578 | 14 |
ZACHODNIOPOMORSKIE | 2004455 | 1664268.7 | 1035980.4 | 1120911.29 | 4497421 | 14 |
ŁÓDZKIE | 23568477 | 24465042.8 | 8671909.3 | 12414990.66 | 40209498 | 14 |
ŚWIĘTOKRZYSKIE | 2786008 | 655091.8 | 3276902.7 | 37646.84 | 9172178 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Inflacja"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Inflacja'),
x = 'Rok',
y = 'Inflacja'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Inflacja'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 103.4000 | 102.50 | 4.091642 | 99.2 | 113.4 | 14 |
KUJAWSKO_POMORSKIE | 103.6714 | 102.45 | 4.523686 | 99.1 | 115.6 | 14 |
LUBELSKIE | 103.3857 | 102.25 | 4.458330 | 98.8 | 115.0 | 14 |
LUBUSKIE | 103.7786 | 102.65 | 4.226688 | 99.6 | 113.6 | 14 |
MAZOWIECKIE | 103.4500 | 102.30 | 4.265560 | 99.1 | 113.5 | 14 |
MAŁOPOLSKIE | 103.8643 | 102.75 | 4.496256 | 99.2 | 114.9 | 14 |
OPOLSKIE | 103.5786 | 102.55 | 4.532817 | 98.9 | 115.8 | 14 |
PODKARPACKIE | 103.5714 | 102.75 | 4.259908 | 98.9 | 113.6 | 14 |
PODLASKIE | 103.3786 | 102.35 | 4.333621 | 98.7 | 114.1 | 14 |
POMORSKIE | 103.5286 | 102.35 | 4.251955 | 99.2 | 113.9 | 14 |
WARMIŃSKO_MAZURSKIE | 103.6643 | 102.85 | 4.291245 | 99.2 | 113.9 | 14 |
WIELKOPOLSKIE | 103.8143 | 102.70 | 4.525969 | 98.9 | 115.2 | 14 |
ZACHODNIOPOMORSKIE | 103.5714 | 102.50 | 4.303921 | 99.1 | 113.1 | 14 |
ŁÓDZKIE | 103.6857 | 102.70 | 4.677912 | 98.8 | 116.1 | 14 |
ŚWIĘTOKRZYSKIE | 103.6643 | 102.55 | 4.597593 | 98.3 | 115.7 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Małżeństwa"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Małżeństwa'),
x = 'Rok',
y = 'Małżeństwa'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Małżeństwa'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 13557.214 | 13733.5 | 1429.8839 | 10816 | 16390 | 14 |
KUJAWSKO_POMORSKIE | 9850.286 | 10243.5 | 1427.8138 | 7552 | 12447 | 14 |
LUBELSKIE | 10219.000 | 10538.5 | 1688.2033 | 7344 | 13302 | 14 |
LUBUSKIE | 4706.857 | 4905.0 | 695.0926 | 3511 | 5926 | 14 |
MAZOWIECKIE | 25649.714 | 26039.0 | 2379.4521 | 21179 | 30488 | 14 |
MAŁOPOLSKIE | 17310.929 | 17674.0 | 1622.2877 | 14463 | 20381 | 14 |
OPOLSKIE | 4509.071 | 4750.0 | 777.6363 | 3173 | 5693 | 14 |
PODKARPACKIE | 10448.143 | 10863.0 | 1665.1295 | 7579 | 13213 | 14 |
PODLASKIE | 5671.500 | 5934.0 | 840.2825 | 4094 | 7003 | 14 |
POMORSKIE | 11592.929 | 11895.0 | 1162.7893 | 9430 | 13604 | 14 |
WARMIŃSKO_MAZURSKIE | 6508.643 | 6694.5 | 1049.6645 | 4767 | 8370 | 14 |
WIELKOPOLSKIE | 17329.000 | 17604.0 | 2085.6023 | 13982 | 21191 | 14 |
ZACHODNIOPOMORSKIE | 7835.857 | 8207.0 | 966.0329 | 6148 | 9521 | 14 |
ŁÓDZKIE | 11206.357 | 11430.5 | 1549.6931 | 8755 | 14513 | 14 |
ŚWIĘTOKRZYSKIE | 5707.143 | 5879.0 | 1087.7036 | 3929 | 7833 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Bezrobocie"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Bezrobocie'),
x = 'Rok',
y = 'Bezrobocie'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Bezrobocie'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 8.078571 | 6.45 | 3.652855 | 4.4 | 13.5 | 14 |
KUJAWSKO_POMORSKIE | 12.078571 | 10.95 | 4.305842 | 7.1 | 18.2 | 14 |
LUBELSKIE | 10.442857 | 9.55 | 2.641595 | 7.5 | 14.4 | 14 |
LUBUSKIE | 9.385714 | 7.55 | 4.701368 | 4.3 | 15.9 | 14 |
MAZOWIECKIE | 7.100000 | 6.30 | 2.650109 | 4.1 | 11.1 | 14 |
MAŁOPOLSKIE | 7.242857 | 5.95 | 2.906416 | 4.1 | 11.5 | 14 |
OPOLSKIE | 9.350000 | 8.15 | 3.441768 | 5.8 | 14.4 | 14 |
PODKARPACKIE | 11.821429 | 10.70 | 3.255097 | 7.9 | 16.4 | 14 |
PODLASKIE | 10.385714 | 9.40 | 3.208608 | 6.9 | 15.1 | 14 |
POMORSKIE | 8.114286 | 6.50 | 3.615960 | 4.5 | 13.4 | 14 |
WARMIŃSKO_MAZURSKIE | 14.257143 | 12.95 | 5.217532 | 8.3 | 21.6 | 14 |
WIELKOPOLSKIE | 5.628571 | 4.30 | 2.831262 | 2.8 | 9.8 | 14 |
ZACHODNIOPOMORSKIE | 11.635714 | 9.70 | 4.835224 | 6.7 | 18.2 | 14 |
ŁÓDZKIE | 8.942857 | 7.60 | 3.445334 | 5.4 | 14.1 | 14 |
ŚWIĘTOKRZYSKIE | 11.307143 | 9.80 | 3.457092 | 7.8 | 16.6 | 14 |
library(ggplot2)
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Wynagrodz_brutto"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Wynagrodz_brutto'),
x = 'Rok',
y = 'Wynagrodz_brutto'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Wynagrodz_brutto'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 4918.791 | 4520.175 | 1343.262 | 3412.37 | 7850.30 | 14 |
KUJAWSKO_POMORSKIE | 4169.871 | 3779.590 | 1144.224 | 2910.82 | 6721.48 | 14 |
LUBELSKIE | 4293.716 | 3918.100 | 1087.892 | 3099.60 | 6774.52 | 14 |
LUBUSKIE | 4212.411 | 3842.925 | 1183.749 | 2920.43 | 6882.46 | 14 |
MAZOWIECKIE | 5832.480 | 5382.255 | 1381.408 | 4279.55 | 8928.60 | 14 |
MAŁOPOLSKIE | 4677.626 | 4212.505 | 1402.336 | 3169.90 | 7736.56 | 14 |
OPOLSKIE | 4392.129 | 4035.975 | 1160.265 | 3137.29 | 6975.81 | 14 |
PODKARPACKIE | 4087.359 | 3745.420 | 1066.550 | 2877.43 | 6436.15 | 14 |
PODLASKIE | 4278.016 | 3886.570 | 1141.273 | 3019.83 | 6805.04 | 14 |
POMORSKIE | 4790.967 | 4385.685 | 1248.459 | 3383.58 | 7550.99 | 14 |
WARMIŃSKO_MAZURSKIE | 4066.004 | 3711.070 | 1070.636 | 2879.97 | 6447.09 | 14 |
WIELKOPOLSKIE | 4349.301 | 4009.115 | 1098.507 | 3126.36 | 6772.06 | 14 |
ZACHODNIOPOMORSKIE | 4424.172 | 4050.265 | 1165.091 | 3120.15 | 7007.40 | 14 |
ŁÓDZKIE | 4424.828 | 4033.520 | 1200.207 | 3066.02 | 7052.93 | 14 |
ŚWIĘTOKRZYSKIE | 4171.399 | 3790.530 | 1086.577 | 2971.58 | 6585.16 | 14 |
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Wartość_lokali"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Wartość_lokali'),
x = 'Rok',
y = 'Wartość_lokali'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Wartość_lokali'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 6020946469 | 5273647727 | 2987862793 | 3259701514 | 11791882431 | 14 |
KUJAWSKO_POMORSKIE | 1635696711 | 1337207326 | 807513717 | 711752507 | 3157935812 | 14 |
LUBELSKIE | 1491951029 | 1204338663 | 925589178 | 588908153 | 3448964854 | 14 |
LUBUSKIE | 922155514 | 733030042 | 458364037 | 466448828 | 1752603414 | 14 |
MAZOWIECKIE | 13432465446 | 12992505534 | 6320385582 | 6535273044 | 26272463694 | 14 |
MAŁOPOLSKIE | 5632585816 | 4212087669 | 3060333970 | 2772107808 | 12626012621 | 14 |
OPOLSKIE | 631037470 | 468876013 | 318340769 | 339954251 | 1209117778 | 14 |
PODKARPACKIE | 1017150434 | 644442505 | 739259635 | 215433360 | 2191359732 | 14 |
PODLASKIE | 1145180149 | 906694241 | 621361718 | 512007161 | 2332078025 | 14 |
POMORSKIE | 6204225806 | 5216866424 | 3188427294 | 2412289648 | 11363785145 | 14 |
WARMIŃSKO_MAZURSKIE | 1520638543 | 1177654737 | 722964258 | 871294170 | 2790628305 | 14 |
WIELKOPOLSKIE | 4031173771 | 3206609593 | 2095198087 | 2170694590 | 8671257857 | 14 |
ZACHODNIOPOMORSKIE | 2030576673 | 1747991805 | 710232327 | 1216154271 | 3224861980 | 14 |
ŁÓDZKIE | 1990607572 | 1460361281 | 1183334671 | 722081592 | 4284439004 | 14 |
ŚWIĘTOKRZYSKIE | 513067674 | 363057929 | 311656923 | 153899232 | 1103778845 | 14 |
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Średnia_cena_lokali"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Średnia_cena_lokali'),
x = 'Rok',
y = 'Średnia_cena_lokali'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Średnia_cena_lokali'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 268415.5 | 236340.5 | 63888.90 | 220181 | 419625 | 14 |
KUJAWSKO_POMORSKIE | 203696.2 | 177924.5 | 49251.38 | 159801 | 300555 | 14 |
LUBELSKIE | 247214.1 | 221022.0 | 58703.72 | 198687 | 383645 | 14 |
LUBUSKIE | 171262.9 | 145210.0 | 50852.87 | 129746 | 290889 | 14 |
MAZOWIECKIE | 426693.2 | 384401.5 | 78661.54 | 359742 | 606698 | 14 |
MAŁOPOLSKIE | 352497.5 | 311328.5 | 82011.82 | 295029 | 550105 | 14 |
OPOLSKIE | 182799.1 | 159181.0 | 45022.64 | 145544 | 277384 | 14 |
PODKARPACKIE | 212131.1 | 183262.0 | 60272.66 | 145563 | 335413 | 14 |
PODLASKIE | 237672.1 | 209741.5 | 52387.18 | 197624 | 360779 | 14 |
POMORSKIE | 324946.7 | 290069.0 | 74631.56 | 261035 | 472625 | 14 |
WARMIŃSKO_MAZURSKIE | 197152.1 | 172570.0 | 48100.34 | 158507 | 302934 | 14 |
WIELKOPOLSKIE | 264346.4 | 239851.5 | 51067.35 | 226358 | 389772 | 14 |
ZACHODNIOPOMORSKIE | 238056.6 | 207231.0 | 60051.49 | 186900 | 361856 | 14 |
ŁÓDZKIE | 219255.5 | 188147.0 | 53247.65 | 175731 | 333134 | 14 |
ŚWIĘTOKRZYSKIE | 210696.4 | 190841.0 | 53444.22 | 152045 | 321333 | 14 |
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Mediana.cen"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Mediana.cen'),
x = 'Rok',
y = 'Mediana.cen'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Mediana.cen'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 4875.429 | 4357.5 | 1162.9032 | 3952 | 7666 | 14 |
KUJAWSKO_POMORSKIE | 3968.429 | 3435.0 | 997.9708 | 3131 | 5917 | 14 |
LUBELSKIE | 4822.357 | 4363.5 | 1203.3563 | 3707 | 7609 | 14 |
LUBUSKIE | 3346.071 | 2878.0 | 988.5170 | 2504 | 5619 | 14 |
MAZOWIECKIE | 7147.429 | 6784.0 | 1114.5198 | 5988 | 9828 | 14 |
MAŁOPOLSKIE | 6728.214 | 6024.0 | 1507.3748 | 5658 | 10457 | 14 |
OPOLSKIE | 3352.786 | 2990.0 | 909.5383 | 2620 | 5390 | 14 |
PODKARPACKIE | 4094.643 | 3581.0 | 1113.4404 | 2808 | 6234 | 14 |
PODLASKIE | 4721.000 | 4187.5 | 1001.6641 | 3967 | 7217 | 14 |
POMORSKIE | 5552.929 | 4901.5 | 1273.7335 | 4465 | 8261 | 14 |
WARMIŃSKO_MAZURSKIE | 3807.357 | 3269.0 | 955.9378 | 3100 | 5978 | 14 |
WIELKOPOLSKIE | 4613.357 | 4199.5 | 866.0042 | 4027 | 6771 | 14 |
ZACHODNIOPOMORSKIE | 4348.429 | 3888.0 | 942.9449 | 3491 | 6429 | 14 |
ŁÓDZKIE | 4236.286 | 3521.5 | 1228.3763 | 3230 | 6783 | 14 |
ŚWIĘTOKRZYSKIE | 4066.643 | 3632.5 | 1135.8461 | 2786 | 6518 | 14 |
# Tworzenie zbiorczej ramki danych dla zmiennej
combined_data <- do.call(rbind, lapply(names(data_list), function(region_name) {
data <- data_list[[region_name]]
data.frame(
Rok = data[['Rok']],
Wartość = data[["Średnia.cena.za.1m2"]],
Region = region_name
)
}))
# Tworzenie wykresu dla zmiennej
plot <- ggplot(combined_data, aes(x = Rok, y = Wartość, color = Region)) +
geom_line() +
theme_minimal() +
labs(
title = paste('Wykres dla zmiennej:', 'Średnia.cena.za.1m2'),
x = 'Rok',
y = 'Średnia.cena.za.1m2'
)
# Wyświetlenie wykresu
print(plot)
# Obliczanie statystyk opisowych dla zmiennej
statystyki_opisowe <- combined_data %>%
group_by(Region) %>%
summarise(
Średnia = mean(Wartość, na.rm = TRUE),
Mediana = median(Wartość, na.rm = TRUE),
Odchylenie_standardowe = sd(Wartość, na.rm = TRUE),
Minimum = min(Wartość, na.rm = TRUE),
Maksimum = max(Wartość, na.rm = TRUE),
Liczba_obserwacji = sum(!is.na(Wartość))
)
# Wyświetlenie wyników
kable(statystyki_opisowe, caption = "Statystyki opisowe dla zmiennej 'Średnia.cena.za.1m2'")
Region | Średnia | Mediana | Odchylenie_standardowe | Minimum | Maksimum | Liczba_obserwacji |
---|---|---|---|---|---|---|
DOLNOŚLĄSKIE | 4870.714 | 4302.5 | 1143.7429 | 3987 | 7607 | 14 |
KUJAWSKO_POMORSKIE | 3975.214 | 3453.0 | 978.2868 | 3127 | 6010 | 14 |
LUBELSKIE | 4718.500 | 4210.0 | 1155.3358 | 3753 | 7460 | 14 |
LUBUSKIE | 3252.286 | 2766.5 | 946.7521 | 2480 | 5461 | 14 |
MAZOWIECKIE | 7400.214 | 6861.0 | 1229.3471 | 6227 | 10317 | 14 |
MAŁOPOLSKIE | 6717.571 | 5989.0 | 1496.1542 | 5653 | 10446 | 14 |
OPOLSKIE | 3363.857 | 2991.0 | 826.0300 | 2698 | 5217 | 14 |
PODKARPACKIE | 4066.000 | 3560.5 | 1073.9333 | 2843 | 6330 | 14 |
PODLASKIE | 4593.786 | 4024.5 | 1025.7120 | 3851 | 7101 | 14 |
POMORSKIE | 5913.357 | 5288.0 | 1298.2268 | 4804 | 8571 | 14 |
WARMIŃSKO_MAZURSKIE | 3827.786 | 3391.0 | 915.3116 | 3111 | 5959 | 14 |
WIELKOPOLSKIE | 4725.786 | 4351.5 | 876.8234 | 4113 | 6917 | 14 |
ZACHODNIOPOMORSKIE | 4482.286 | 3868.5 | 1182.8788 | 3493 | 6950 | 14 |
ŁÓDZKIE | 4316.929 | 3651.0 | 1135.5692 | 3422 | 6797 | 14 |
ŚWIĘTOKRZYSKIE | 4141.929 | 3766.0 | 1035.5856 | 3094 | 6513 | 14 |
library(corrplot)
## corrplot 0.92 loaded
library(readxl)
## Warning: pakiet 'readxl' został zbudowany w wersji R 4.3.3
library(dplyr)
library(car)
## Ładowanie wymaganego pakietu: carData
##
## Dołączanie pakietu: 'car'
## Następujący obiekt został zakryty z 'package:dplyr':
##
## recode
polska_data_clean <- polska_data_clean %>%
mutate(across(everything(), ~ as.numeric(gsub(",", ".", gsub(" ", "", .)))))
cor_matrix <- cor(polska_data_clean, use = "complete.obs")
print(cor_matrix)
## Rok Liczba_sprzedanych Powierzchnia_użytkowa
## Rok 1.0000000 0.9806255 0.9790669
## Liczba_sprzedanych 0.9806255 1.0000000 0.9996717
## Powierzchnia_użytkowa 0.9790669 0.9996717 1.0000000
## Średnia cena za 1m2 0.8506941 0.8168796 0.8161366
## Mediana cen 0.8683000 0.8347299 0.8338932
## Średnia_cena_lokali 0.8506941 0.8168796 0.8161366
## Wartość_lokali 0.9487189 0.9415841 0.9413346
## Wynagrodz_brutto 0.9451184 0.9135824 0.9117784
## Bezrobocie -0.9285756 -0.9446565 -0.9411559
## Małżeństwa -0.8661921 -0.7822748 -0.7832763
## Inflacja 0.5839116 0.5347003 0.5353886
## Wydatki_700 0.7290334 0.6956669 0.6984632
## Mieszkania _oddane 0.9600460 0.9564464 0.9596971
## Pozwolenia_budowa 0.8393765 0.8886044 0.8949082
## Miesięczny_dochód 0.9447658 0.9189789 0.9166869
## Średnia cena za 1m2 Mediana cen Średnia_cena_lokali
## Rok 0.8506941 0.8683000 0.8506941
## Liczba_sprzedanych 0.8168796 0.8347299 0.8168796
## Powierzchnia_użytkowa 0.8161366 0.8338932 0.8161366
## Średnia cena za 1m2 1.0000000 0.9989577 1.0000000
## Mediana cen 0.9989577 1.0000000 0.9989577
## Średnia_cena_lokali 1.0000000 0.9989577 1.0000000
## Wartość_lokali 0.9619977 0.9702724 0.9619977
## Wynagrodz_brutto 0.9715212 0.9795877 0.9715212
## Bezrobocie -0.7025478 -0.7175568 -0.7025478
## Małżeństwa -0.7839565 -0.8027598 -0.7839565
## Inflacja 0.8724113 0.8563026 0.8724113
## Wydatki_700 0.8534698 0.8552522 0.8534698
## Mieszkania _oddane 0.8004546 0.8146763 0.8004546
## Pozwolenia_budowa 0.6714231 0.6806196 0.6714231
## Miesięczny_dochód 0.9634307 0.9717688 0.9634307
## Wartość_lokali Wynagrodz_brutto Bezrobocie Małżeństwa
## Rok 0.9487189 0.9451184 -0.9285756 -0.8661921
## Liczba_sprzedanych 0.9415841 0.9135824 -0.9446565 -0.7822748
## Powierzchnia_użytkowa 0.9413346 0.9117784 -0.9411559 -0.7832763
## Średnia cena za 1m2 0.9619977 0.9715212 -0.7025478 -0.7839565
## Mediana cen 0.9702724 0.9795877 -0.7175568 -0.8027598
## Średnia_cena_lokali 0.9619977 0.9715212 -0.7025478 -0.7839565
## Wartość_lokali 1.0000000 0.9901501 -0.8388749 -0.8182348
## Wynagrodz_brutto 0.9901501 1.0000000 -0.8162017 -0.8567413
## Bezrobocie -0.8388749 -0.8162017 1.0000000 0.6590540
## Małżeństwa -0.8182348 -0.8567413 0.6590540 1.0000000
## Inflacja 0.7529257 0.7753349 -0.4293408 -0.5567550
## Wydatki_700 0.8249853 0.8500144 -0.5662775 -0.7056464
## Mieszkania _oddane 0.9064554 0.8903629 -0.9244883 -0.8034289
## Pozwolenia_budowa 0.8012729 0.7390910 -0.8896703 -0.5829333
## Miesięczny_dochód 0.9878249 0.9970751 -0.8309424 -0.8411350
## Inflacja Wydatki_700 Mieszkania _oddane
## Rok 0.5839116 0.7290334 0.9600460
## Liczba_sprzedanych 0.5347003 0.6956669 0.9564464
## Powierzchnia_użytkowa 0.5353886 0.6984632 0.9596971
## Średnia cena za 1m2 0.8724113 0.8534698 0.8004546
## Mediana cen 0.8563026 0.8552522 0.8146763
## Średnia_cena_lokali 0.8724113 0.8534698 0.8004546
## Wartość_lokali 0.7529257 0.8249853 0.9064554
## Wynagrodz_brutto 0.7753349 0.8500144 0.8903629
## Bezrobocie -0.4293408 -0.5662775 -0.9244883
## Małżeństwa -0.5567550 -0.7056464 -0.8034289
## Inflacja 1.0000000 0.7763986 0.5746064
## Wydatki_700 0.7763986 1.0000000 0.7496763
## Mieszkania _oddane 0.5746064 0.7496763 1.0000000
## Pozwolenia_budowa 0.4810244 0.5572831 0.9123186
## Miesięczny_dochód 0.7560297 0.8595361 0.8962684
## Pozwolenia_budowa Miesięczny_dochód
## Rok 0.8393765 0.9447658
## Liczba_sprzedanych 0.8886044 0.9189789
## Powierzchnia_użytkowa 0.8949082 0.9166869
## Średnia cena za 1m2 0.6714231 0.9634307
## Mediana cen 0.6806196 0.9717688
## Średnia_cena_lokali 0.6714231 0.9634307
## Wartość_lokali 0.8012729 0.9878249
## Wynagrodz_brutto 0.7390910 0.9970751
## Bezrobocie -0.8896703 -0.8309424
## Małżeństwa -0.5829333 -0.8411350
## Inflacja 0.4810244 0.7560297
## Wydatki_700 0.5572831 0.8595361
## Mieszkania _oddane 0.9123186 0.8962684
## Pozwolenia_budowa 1.0000000 0.7430588
## Miesięczny_dochód 0.7430588 1.0000000
corrplot(cor_matrix, method = "color", type = "full",
tl.col = "black", tl.srt = 45, title = "Macierz korelacji", mar = c(0, 0, 1, 0))
Regresja liniowa, choć niekoniecznie musi być idealnym modelem do analizy złożonego rynku nieruchomości, stanowi dobrą bazę wyjściową do wstępnej oceny zależności między zmiennymi. W naszym projekcie stosujemy tę metodę, aby sprawdzić, jak dobrze dopasowuje się do naszych danych z lat 2010–2023 i jakie wyniki generuje w kontekście wpływu zmiennych objaśniających na ceny nieruchomości. Analiza wyników pozwoli nam ocenić, czy regresja liniowa jest odpowiednia dla tego typu problemu, czy też wymaga uzupełnienia lub zastąpienia bardziej zaawansowanymi podejściami.
### model chyba bezużyteczny
library(readxl)
library(dplyr)
library(car)
# Pierwszy model
attach(polska_data_clean)
model1<-lm(`Średnia cena za 1m2`~Bezrobocie+Małżeństwa+Wydatki_700+Pozwolenia_budowa)
summary(model1)
##
## Call:
## lm(formula = `Średnia cena za 1m2` ~ Bezrobocie + Małżeństwa +
## Wydatki_700 + Pozwolenia_budowa)
##
## Residuals:
## Min 1Q Median 3Q Max
## -744.34 -366.09 -27.35 259.80 768.58
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.719e+03 2.915e+03 1.962 0.0814 .
## Bezrobocie -5.227e+01 1.127e+02 -0.464 0.6537
## Małżeństwa -1.211e-02 1.073e-02 -1.129 0.2883
## Wydatki_700 1.428e-05 5.375e-06 2.657 0.0262 *
## Pozwolenia_budowa 1.665e-03 5.902e-03 0.282 0.7842
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 573.5 on 9 degrees of freedom
## Multiple R-squared: 0.8245, Adjusted R-squared: 0.7466
## F-statistic: 10.57 on 4 and 9 DF, p-value: 0.00187
# Obliczenie VIF dla zmiennych objaśniających w modelu
vif_values <- vif(model1)
# Wyświetlenie wyników
print(vif_values)
## Bezrobocie Małżeństwa Wydatki_700 Pozwolenia_budowa
## 5.606085 2.508270 2.131365 4.947929
Metoda a posteriori
#Drugi model
polska_data_clean <- polska_data_clean %>%
mutate(across(everything(), ~ as.numeric(gsub(",", ".", gsub(" ", "", .)))))
model2 <- lm(`Średnia cena za 1m2` ~
Wynagrodz_brutto + Bezrobocie + Małżeństwa,
data = polska_data_clean)
summary(model2)
##
## Call:
## lm(formula = `Średnia cena za 1m2` ~ Wynagrodz_brutto + Bezrobocie +
## Małżeństwa, data = polska_data_clean)
##
## Residuals:
## Min 1Q Median 3Q Max
## -200.38 -132.42 -12.68 151.94 228.50
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.877e+03 1.241e+03 -3.125 0.01078 *
## Wynagrodz_brutto 1.290e+00 9.944e-02 12.968 1.4e-07 ***
## Bezrobocie 1.016e+02 2.540e+01 4.001 0.00251 **
## Małżeństwa 1.101e-02 4.051e-03 2.719 0.02161 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 175.2 on 10 degrees of freedom
## Multiple R-squared: 0.9818, Adjusted R-squared: 0.9763
## F-statistic: 179.8 on 3 and 10 DF, p-value: 5.371e-09
vif(model2)
## Wynagrodz_brutto Bezrobocie Małżeństwa
## 6.488628 3.051261 3.829238
Metodą a posteriori usunęliśmy zmienne: liczba_sprzedanych, powierzchnia_użytkowa, inflacja, wydatki_700, mieszkania_oddane, pozwolenia_budowa, oraz miesięczny_dochód. Dzięki temu model jest bardziej zoptymalizowany pod kątem analizy danych i interpretacji wyników.
Model w 98,18% wyjaśnia naszą zmienną zależną (średnia cena za 1 m^2).
Na podstawie statystyki F stwierdzamy, że model jako całość jest istotny statystycznie, co oznacza, że przynajmniej jedna z wybranych zmiennych objaśniających znacząco wpływa na zmienną zależną.
Wszystkie wartości VIF są poniżej 10 (Wynagrodz_brutto: 6.49, Bezrobocie: 3.05, Małżeństwa: 3.83), co oznacza brak istotnej współliniowości między zmiennymi.
Mimo że model cechuje się bardzo dobrym dopasowaniem do danych, dążymy do poszukiwania jeszcze lepszych rozwiązań, które mogą w jeszcze większym stopniu uwzględniać złożoność analizowanego rynku nieruchomości i dostarczać bardziej precyzyjnych prognoz.
Model Random Forest
Sprawdzamy użyteczność modelu Random Forest do naszej analizy ze względu na jego zdolność do uchwycenia złożonych i nieliniowych zależności między zmiennymi, co jest szczególnie istotne w przypadku zmiennych ekonomicznych, takich jak ceny nieruchomości. Random Forest cechuje się wysoką odpornością na nadmierne dopasowanie dzięki losowej selekcji zmiennych i obserwacji, co zwiększa jego ogólną niezawodność. Dodatkowo, umożliwia on ocenę ważności poszczególnych zmiennych, co pozwala lepiej zrozumieć czynniki wpływające na średnią cenę za 1m², co jest kluczowym celem naszego projektu.
# Lista zmiennych
variables <- c(
"Miesięczny_dochód", "Inflacja", "Pozwolenia_budowa", "Wydatki_700",
"Małżeństwa", "Liczba_sprzedanych", "Mieszkania _oddane", "Powierzchnia_użytkowa", "Bezrobocie"
)
library(randomForest)
## Warning: pakiet 'randomForest' został zbudowany w wersji R 4.3.2
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
##
## Dołączanie pakietu: 'randomForest'
## Następujący obiekt został zakryty z 'package:ggplot2':
##
## margin
## Następujący obiekt został zakryty z 'package:gridExtra':
##
## combine
## Następujący obiekt został zakryty z 'package:dplyr':
##
## combine
model_rf <- randomForest(`Średnia cena za 1m2` ~ ., data = polska_data_clean[, variables])
print(model_rf)
##
## Call:
## randomForest(formula = `Średnia cena za 1m2` ~ ., data = polska_data_clean[, variables])
## Type of random forest: regression
## Number of trees: 500
## No. of variables tried at each split: 3
##
## Mean of squared residuals: 275918
## % Var explained: 77.1
summary(model_rf)
## Length Class Mode
## call 3 -none- call
## type 1 -none- character
## predicted 14 -none- numeric
## mse 500 -none- numeric
## rsq 500 -none- numeric
## oob.times 14 -none- numeric
## importance 9 -none- numeric
## importanceSD 0 -none- NULL
## localImportance 0 -none- NULL
## proximity 0 -none- NULL
## ntree 1 -none- numeric
## mtry 1 -none- numeric
## forest 11 -none- list
## coefs 0 -none- NULL
## y 14 -none- numeric
## test 0 -none- NULL
## inbag 0 -none- NULL
## terms 3 terms call
importance(model_rf)
## IncNodePurity
## Miesięczny_dochód 3087572.4
## Inflacja 1741467.1
## Pozwolenia_budowa 501193.1
## Wydatki_700 1802314.0
## Małżeństwa 1170100.0
## Liczba_sprzedanych 2055386.9
## Mieszkania _oddane 1647580.2
## Powierzchnia_użytkowa 2377779.7
## Bezrobocie 811311.8
varImpPlot(model_rf)
% Variance explained: 74.37% – model wyjaśnia 74.37% zmienności zmiennej zależnej (Średnia cena za 1m²). Wynik sugeruje, że model jest dobrze dopasowany, ale istnieje przestrzeń na dalszą poprawę, np. poprzez optymalizację parametrów.
Najważniejsze zmienne w modelu:
-Miesięczny_dochód (2,679,809.8): Najważniejsza zmienna w modelu, co jest logiczne, ponieważ dochody gospodarstw domowych mają bezpośredni wpływ na popyt i ceny nieruchomości.
-Powierzchnia_użytkowa (2,094,875.8): Wielkość nieruchomości ma duży wpływ na cenę za metr kwadratowy.
-Liczba_sprzedanych (2,114,817.1): Liczba sprzedanych nieruchomości wpływa na dynamikę rynku i popyt, co przekłada się na ceny nieruchomości.
-Inflacja (1,996,279.6): Wydatki konsumpcyjne mogą wpływać na decyzje zakupowe, co przekłada się na ceny nieruchomości.
library(knitr)
# Funkcja obliczająca statystyki opisowe dla każdej kolumny numerycznej
summary_stats <- function(x) {
c(
Średnia = mean(x, na.rm = TRUE),
Mediana = median(x, na.rm = TRUE),
Minimum = min(x, na.rm = TRUE),
Maksimum = max(x, na.rm = TRUE),
Odchylenie_Standardowe = sd(x, na.rm = TRUE)
)
}
# Wybranie tylko kolumn numerycznych
numeric_data <- polska_data_clean[sapply(polska_data_clean, is.numeric)]
# Obliczanie statystyk dla każdej kolumny
stats <- t(sapply(numeric_data, summary_stats))
# Przekształcenie wyników w ramkę danych
stats_df <- data.frame(Kolumna = rownames(stats), stats)
rownames(stats_df) <- NULL
# Formatowanie danych liczbowych do bardziej czytelnej formy
stats_df[-1] <- lapply(stats_df[-1], function(x) format(round(x, 2), big.mark = " ", scientific = FALSE))
# Wyświetlenie tabeli
kable(stats_df, caption = "Podstawowe statystyki opisowe dla każdej zmiennej")
Kolumna | Średnia | Mediana | Minimum | Maksimum | Odchylenie_Standardowe |
---|---|---|---|---|---|
Rok | 2 016.50 | 2 016.50 | 2 010.00 | 2 023.0 | 4.18 |
Liczba_sprzedanych | 171 689.00 | 172 192.50 | 103 459.00 | 244 672.0 | 50 093.65 |
Powierzchnia_użytkowa | 9 299 870.37 | 9 238 132.35 | 5 554 022.80 | 13 481 831.1 | 2 773 896.19 |
Średnia cena za 1m2 | 5 242.86 | 4 674.00 | 4 358.00 | 7 906.0 | 1 139.11 |
Mediana cen | 4 814.43 | 4 309.50 | 3 976.00 | 7 317.0 | 1 068.83 |
Średnia_cena_lokali | 5 242.86 | 4 674.00 | 4 358.00 | 7 906.0 | 1 139.11 |
Wartość_lokali | 51 151 739 078.86 | 43 194 052 491.50 | 25 303 061 771.00 | 103 694 809 479.0 | 25 747 865 079.13 |
Wynagrodz_brutto | 4 821.21 | 4 409.20 | 3 435.00 | 7 595.3 | 1 244.95 |
Bezrobocie | 8.64 | 7.40 | 5.10 | 13.4 | 3.34 |
Małżeństwa | 183 807.36 | 188 660.00 | 145 045.00 | 228 337.0 | 23 476.00 |
Inflacja | 103.59 | 102.45 | 99.10 | 114.4 | 4.36 |
Wydatki_700 | 127 855 615.60 | 119 432 523.40 | 71 831 683.14 | 228 551 677.8 | 43 201 780.75 |
Mieszkania _oddane | 100 440.93 | 98 271.50 | 56 925.00 | 143 971.0 | 34 107.75 |
Pozwolenia_budowa | 225 364.07 | 226 587.50 | 138 837.00 | 341 203.0 | 59 948.67 |
Miesięczny_dochód | 1 658.46 | 1 536.35 | 1 192.82 | 2 678.3 | 441.75 |
if (!require(Kendall)) install.packages("Kendall", dependencies = TRUE)
## Ładowanie wymaganego pakietu: Kendall
## Warning: pakiet 'Kendall' został zbudowany w wersji R 4.3.3
if (!require(tseries)) install.packages("tseries", dependencies = TRUE)
## Ładowanie wymaganego pakietu: tseries
## Warning: pakiet 'tseries' został zbudowany w wersji R 4.3.3
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
if (!require(knitr)) install.packages("knitr", dependencies = TRUE)
if (!require(kableExtra)) install.packages("kableExtra", dependencies = TRUE)
## Ładowanie wymaganego pakietu: kableExtra
## Warning: pakiet 'kableExtra' został zbudowany w wersji R 4.3.3
##
## Dołączanie pakietu: 'kableExtra'
## Następujący obiekt został zakryty z 'package:dplyr':
##
## group_rows
library(Kendall)
library(tseries)
library(knitr)
library(kableExtra)
# Funkcja do sprawdzenia trendu i stacjonarności
check_trend_and_stationarity <- function(data) {
results <- data.frame(
Zmienna = character(),
Trend = character(),
MannKendall_p_value = numeric(),
Stacjonarnosc = character(),
ADF_p_value = numeric(),
stringsAsFactors = FALSE
)
for (column_name in names(data)[-1]) { # Pomijamy 'Rok'
variable <- data[[column_name]]
# Test Mann-Kendalla na obecność trendu
mk_result <- MannKendall(variable)
trend <- ifelse(mk_result$sl < 0.05, "Trend obecny", "Trend nieobecny")
# Test Dickeya-Fullera na stacjonarność
adf_result <- adf.test(variable, alternative = "stationary")
stationarity <- ifelse(adf_result$p.value < 0.05, "Stacjonarna", "Niestacjonarna")
# Dodawanie wyników do tabeli
results <- rbind(results, data.frame(
Zmienna = column_name,
Trend = trend,
MannKendall_p_value = mk_result$sl,
Stacjonarnosc = stationarity,
ADF_p_value = adf_result$p.value
))
}
return(results)
}
# Wywołanie funkcji dla polska_data_clean
trend_stationarity_results <- check_trend_and_stationarity(polska_data_clean)
## Warning in adf.test(variable, alternative = "stationary"): p-value greater than
## printed p-value
## Warning in adf.test(variable, alternative = "stationary"): p-value greater than
## printed p-value
## Warning in adf.test(variable, alternative = "stationary"): p-value greater than
## printed p-value
## Warning in adf.test(variable, alternative = "stationary"): p-value greater than
## printed p-value
## Warning in adf.test(variable, alternative = "stationary"): p-value greater than
## printed p-value
## Warning in adf.test(variable, alternative = "stationary"): p-value greater than
## printed p-value
## Warning in adf.test(variable, alternative = "stationary"): p-value greater than
## printed p-value
# Prezentacja wyników w tabeli
kable(trend_stationarity_results, format = "html", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE, position = "center") %>%
column_spec(1, bold = TRUE, color = "white", background = "blue") %>%
column_spec(2:5, width = "20em")
Zmienna | Trend | MannKendall_p_value | Stacjonarnosc | ADF_p_value |
---|---|---|---|---|
Liczba_sprzedanych | Trend obecny | 0.0000072 | Niestacjonarna | 0.8142143 |
Powierzchnia_użytkowa | Trend obecny | 0.0000072 | Niestacjonarna | 0.7759617 |
Średnia cena za 1m2 | Trend obecny | 0.0000317 | Niestacjonarna | 0.9900000 |
Mediana cen | Trend obecny | 0.0000196 | Niestacjonarna | 0.9900000 |
Średnia_cena_lokali | Trend obecny | 0.0000317 | Niestacjonarna | 0.9900000 |
Wartość_lokali | Trend obecny | 0.0000008 | Niestacjonarna | 0.9900000 |
Wynagrodz_brutto | Trend obecny | 0.0000008 | Niestacjonarna | 0.9900000 |
Bezrobocie | Trend obecny | 0.0000944 | Niestacjonarna | 0.7456752 |
Małżeństwa | Trend obecny | 0.0014973 | Niestacjonarna | 0.6513507 |
Inflacja | Trend nieobecny | 0.1253111 | Niestacjonarna | 0.9900000 |
Wydatki_700 | Trend obecny | 0.0021715 | Niestacjonarna | 0.5175454 |
Mieszkania _oddane | Trend obecny | 0.0000317 | Niestacjonarna | 0.1554069 |
Pozwolenia_budowa | Trend obecny | 0.0010209 | Niestacjonarna | 0.6364664 |
Miesięczny_dochód | Trend obecny | 0.0000008 | Niestacjonarna | 0.9900000 |
Na podstawie uzyskanych wyników, stwierdzamy, że zmienne są niestacjonarne i wykazują trend
# Instalacja wymaganych pakietów
if (!require(lmtest)) install.packages("lmtest", dependencies = TRUE)
## Ładowanie wymaganego pakietu: lmtest
## Warning: pakiet 'lmtest' został zbudowany w wersji R 4.3.3
## Ładowanie wymaganego pakietu: zoo
## Warning: pakiet 'zoo' został zbudowany w wersji R 4.3.2
##
## Dołączanie pakietu: 'zoo'
## Następujące obiekty zostały zakryte z 'package:base':
##
## as.Date, as.Date.numeric
if (!require(tseries)) install.packages("tseries", dependencies = TRUE)
if (!require(knitr)) install.packages("knitr", dependencies = TRUE)
if (!require(kableExtra)) install.packages("kableExtra", dependencies = TRUE)
library(lmtest)
library(tseries)
library(knitr)
library(kableExtra)
# Funkcja do sprawdzania autokorelacji
check_autocorrelation <- function(data, max_lag = 10, alpha = 0.05) {
results <- data.frame(
Zmienna = character(),
Autokorelacja = character(),
Istotne_rzędy = character(),
stringsAsFactors = FALSE
)
for (column_name in names(data)[-1]) { # Pomijamy 'Rok'
variable <- data[[column_name]]
significant_lags <- c()
# Sprawdzanie autokorelacji dla różnych lagów
for (lag in 1:max_lag) {
lb_test <- Box.test(variable, lag = lag, type = "Ljung-Box")
if (lb_test$p.value < alpha) {
significant_lags <- c(significant_lags, lag)
}
}
# Interpretacja wyników
autocorrelation <- ifelse(length(significant_lags) > 0, "Wykazuje autokorelację", "Brak autokorelacji")
significant_lags_text <- ifelse(length(significant_lags) > 0, paste(significant_lags, collapse = ", "), "Brak")
# Dodanie wyników do tabeli
results <- rbind(results, data.frame(
Zmienna = column_name,
Autokorelacja = autocorrelation,
Istotne_rzędy = significant_lags_text
))
}
return(results)
}
# Wywołanie funkcji dla polska_data_clean
autocorrelation_results <- check_autocorrelation(polska_data_clean)
# Prezentacja wyników w tabeli
kable(autocorrelation_results, format = "html", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE, position = "center") %>%
column_spec(1, bold = TRUE, color = "white", background = "blue")
Zmienna | Autokorelacja | Istotne_rzędy |
---|---|---|
Liczba_sprzedanych | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Powierzchnia_użytkowa | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Średnia cena za 1m2 | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Mediana cen | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Średnia_cena_lokali | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Wartość_lokali | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Wynagrodz_brutto | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Bezrobocie | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Małżeństwa | Wykazuje autokorelację | 1, 2 |
Inflacja | Wykazuje autokorelację | 1, 2, 8, 9, 10 |
Wydatki_700 | Wykazuje autokorelację | 1, 2, 10 |
Mieszkania _oddane | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Pozwolenia_budowa | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
Miesięczny_dochód | Wykazuje autokorelację | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 |
# Iteracja przez wszystkie kolumny (poza 'Rok')
for (column_name in names(polska_data_clean)[-1]) { # Pomijamy 'Rok'
# Pobieranie danych dla danej zmiennej
acf_data <- polska_data_clean[[column_name]]
# Wyświetlenie komunikatu o aktualnej zmiennej
print(paste("Autokorelacja dla zmiennej:", column_name))
# Tworzenie wykresu autokorelacji
acf(acf_data, main = paste("Autokorelacja -", column_name))
}
## [1] "Autokorelacja dla zmiennej: Liczba_sprzedanych"
## [1] "Autokorelacja dla zmiennej: Powierzchnia_użytkowa"
## [1] "Autokorelacja dla zmiennej: Średnia cena za 1m2"
## [1] "Autokorelacja dla zmiennej: Mediana cen"
## [1] "Autokorelacja dla zmiennej: Średnia_cena_lokali"
## [1] "Autokorelacja dla zmiennej: Wartość_lokali"
## [1] "Autokorelacja dla zmiennej: Wynagrodz_brutto"
## [1] "Autokorelacja dla zmiennej: Bezrobocie"
## [1] "Autokorelacja dla zmiennej: Małżeństwa"
## [1] "Autokorelacja dla zmiennej: Inflacja"
## [1] "Autokorelacja dla zmiennej: Wydatki_700"
## [1] "Autokorelacja dla zmiennej: Mieszkania _oddane"
## [1] "Autokorelacja dla zmiennej: Pozwolenia_budowa"
## [1] "Autokorelacja dla zmiennej: Miesięczny_dochód"
Oblicz funkcję autokorelacji (ACF) i częściowej autokorelacji (PACF),
# Instalacja wymaganych pakietów
if (!require(knitr)) install.packages("knitr", dependencies = TRUE)
if (!require(kableExtra)) install.packages("kableExtra", dependencies = TRUE)
library(knitr)
library(kableExtra)
# Funkcja do sprawdzania normalności
check_normality <- function(data, alpha = 0.05) {
results <- data.frame(
Zmienna = character(),
P_value = numeric(),
Normalnosc = character(),
stringsAsFactors = FALSE
)
for (column_name in names(data)[-1]) { # Pomijamy 'Rok'
variable <- data[[column_name]]
# Test Shapiro-Wilka (zalecany dla mniejszych próbek)
sw_test <- shapiro.test(variable)
# Interpretacja wyniku
normality <- ifelse(sw_test$p.value > alpha, "Rozkład normalny", "Brak normalności")
# Dodanie wyników do tabeli
results <- rbind(results, data.frame(
Zmienna = column_name,
P_value = sw_test$p.value,
Normalnosc = normality
))
}
return(results)
}
# Wywołanie funkcji dla polska_data_clean
normality_results <- check_normality(polska_data_clean)
# Prezentacja wyników w tabeli
kable(normality_results, format = "html", align = "c") %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE, position = "center") %>%
column_spec(1, bold = TRUE, color = "white", background = "blue")
Zmienna | P_value | Normalnosc |
---|---|---|
Liczba_sprzedanych | 0.2706247 | Rozkład normalny |
Powierzchnia_użytkowa | 0.2926034 | Rozkład normalny |
Średnia cena za 1m2 | 0.0022093 | Brak normalności |
Mediana cen | 0.0027645 | Brak normalności |
Średnia_cena_lokali | 0.0022093 | Brak normalności |
Wartość_lokali | 0.0543314 | Rozkład normalny |
Wynagrodz_brutto | 0.1148649 | Rozkład normalny |
Bezrobocie | 0.0161841 | Brak normalności |
Małżeństwa | 0.5078690 | Rozkład normalny |
Inflacja | 0.0089752 | Brak normalności |
Wydatki_700 | 0.1517724 | Rozkład normalny |
Mieszkania _oddane | 0.0408115 | Brak normalności |
Pozwolenia_budowa | 0.7149388 | Rozkład normalny |
Miesięczny_dochód | 0.1021046 | Rozkład normalny |
test normalności Shapiro-Wilka
library(scales)
## Warning: pakiet 'scales' został zbudowany w wersji R 4.3.2
library(forecast)
## Warning: pakiet 'forecast' został zbudowany w wersji R 4.3.3
# Funkcja do tworzenia czytelniejszych wykresów
plot_forecast <- function(model, forecast_obj, title, x_label, y_label) {
plot(
forecast_obj,
main = title,
xlab = x_label,
ylab = y_label,
col.main = "darkblue",
col.lab = "darkred",
col.axis = "darkgray",
lwd = 2, # Grubość linii
fcol = "blue", # Kolor prognozy
flwd = 2, # Grubość linii prognozy
shadecols = c("lightblue", "lightgray") # Kolory przedziałów ufności
)
grid() # Siatka
}
Miesięczny dochód
# Prognoza dla "Miesięczny_dochód"
arima_model_dochod <- auto.arima(polska_data_clean$Miesięczny_dochód)
forecast_dochod <- forecast(arima_model_dochod, h = 10)
plot_forecast(arima_model_dochod, forecast_dochod,
title = "Prognoza: Miesięczny dochód",
x_label = "Czas (lata)", y_label = "Dochód (zł)")
# Wyświetlenie diagnostyki modelu
arima_model <- auto.arima(polska_data_clean$Miesięczny_dochód)
summary(arima_model) # Zawiera AIC, BIC i inne statystyki
## Series: polska_data_clean$Miesięczny_dochód
## ARIMA(0,2,0)
##
## sigma^2 = 5742: log likelihood = -68.96
## AIC=139.92 AICc=140.32 BIC=140.41
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 28.09925 70.15567 40.41553 1.256107 2.041851 0.3536917 0.079119
# Analiza reszt
checkresiduals(arima_model) # Wykres reszt i test normalności
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,2,0)
## Q* = 1.0474, df = 3, p-value = 0.7898
##
## Model df: 0. Total lags used: 3
Powyższy model ARIMA(0,2,0) dobrze dopasowuje się do danych, co widać po niskich wartościach MAPE (2%) i braku autokorelacji w resztach (p-value > 0.05).
Liczba_sprzedanych
# Prognoza dla "Liczba_sprzedanych"
arima_model_liczba <- auto.arima(polska_data_clean$Liczba_sprzedanych)
forecast_liczba <- forecast(arima_model_liczba, h = 10)
plot_forecast(arima_model_liczba, forecast_liczba,
title = "Prognoza: Liczba sprzedanych nieruchomości",
x_label = "Czas (lata)", y_label = "Liczba sprzedanych")
# Wyświetlenie diagnostyki modelu
summary(arima_model_liczba) # Zawiera AIC, BIC i inne statystyki
## Series: polska_data_clean$Liczba_sprzedanych
## ARIMA(1,1,0) with drift
##
## Coefficients:
## ar1 drift
## -0.5993 10730.136
## s.e. 0.2035 2119.709
##
## sigma^2 = 166384451: log likelihood = -140.63
## AIC=287.25 AICc=289.92 BIC=288.95
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set -201.5495 11433.75 9114.23 -0.4962457 5.017866 0.603896 -0.2535475
# Analiza reszt
checkresiduals(arima_model_liczba) # Wykres reszt i test normalności
##
## Ljung-Box test
##
## data: Residuals from ARIMA(1,1,0) with drift
## Q* = 3.8305, df = 3, p-value = 0.2804
##
## Model df: 1. Total lags used: 4
Miary błędów sugerują, że model jest dobrze dopasowany, z dokładnością na poziomie około 5% (MAPE). Brak autokorelacji w resztach oraz ich losowy charakter wskazują, że model dobrze oddaje strukturę danych.
Inflacja
# Prognoza dla "Inflacja"
arima_model_inflacja <- auto.arima(polska_data_clean$Inflacja)
forecast_inflacja <- forecast(arima_model_inflacja, h = 10)
plot_forecast(arima_model_inflacja, forecast_inflacja,
title = "Prognoza: Inflacja",
x_label = "Czas (lata)", y_label = "Inflacja (%)")
# Wyświetlenie diagnostyki modelu
summary(forecast_inflacja) # Zawiera AIC, BIC i inne statystyki
##
## Forecast method: ARIMA(0,1,0)
##
## Model Information:
## Series: polska_data_clean$Inflacja
## ARIMA(0,1,0)
##
## sigma^2 = 9.216: log likelihood = -32.88
## AIC=67.76 AICc=68.13 BIC=68.33
##
## Error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.6359 2.925388 1.864471 0.5590874 1.737443 0.9322357 -0.1226776
##
## Forecasts:
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 15 111.4 107.50944 115.2906 105.44990 117.3501
## 16 111.4 105.89792 116.9021 102.98529 119.8147
## 17 111.4 104.66136 118.1386 101.09413 121.7059
## 18 111.4 103.61888 119.1811 99.49981 123.3002
## 19 111.4 102.70045 120.0996 98.09518 124.7048
## 20 111.4 101.87012 120.9299 96.82530 125.9747
## 21 111.4 101.10655 121.6934 95.65753 127.1425
## 22 111.4 100.39584 122.4042 94.57059 128.2294
## 23 111.4 99.72833 123.0717 93.54971 129.2503
## 24 111.4 99.09698 123.7030 92.58415 130.2159
# Analiza reszt
checkresiduals(forecast_inflacja) # Wykres reszt i test normalności
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)
## Q* = 0.2648, df = 3, p-value = 0.9665
##
## Model df: 0. Total lags used: 3
Wyniki sugerują, że model ARIMA(0,1,0) jest dobrze dopasowany, na podstawie bardzo niskich wartościach MAPE (1.74%) i braku autokorelacji w resztach. Natomiast wartości prognoz mają jednakowe liczby w okresie prognostycznym, co jest mało realne. Warto poszukać innej, lepszej metody.
Wydatki_700
# Prognoza dla "Wydatki_700"
arima_model_wydatki <- auto.arima(polska_data_clean$Wydatki_700)
forecast_wydatki <- forecast(arima_model_wydatki, h = 10)
plot_forecast(arima_model_wydatki, forecast_wydatki,
title = "Prognoza: Wydatki na poziomie 700+",
x_label = "Czas (lata)", y_label = "Wydatki (zł)")
# Wyświetlenie diagnostyki modelu
summary(forecast_wydatki) # Zawiera AIC, BIC i inne statystyki
##
## Forecast method: ARIMA(0,1,0)
##
## Model Information:
## Series: polska_data_clean$Wydatki_700
## ARIMA(0,1,0)
##
## sigma^2 = 1.066e+15: log likelihood = -243.36
## AIC=488.72 AICc=489.09 BIC=489.29
##
## Error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 9935573 31458671 23724912 3.534334 19.15497 0.9288218 -0.2824579
##
## Forecasts:
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 15 228551678 186713882 270389474 164566290 292537065
## 16 228551678 169384099 287719256 138062675 319040680
## 17 228551678 156086489 301016866 117725736 339377620
## 18 228551678 144876086 312227270 100580903 356522453
## 19 228551678 134999522 322103834 85476002 371627353
## 20 228551678 126070426 331032930 71820128 385283228
## 21 228551678 117859274 339244081 59262255 397841100
## 22 228551678 110216521 346886835 47573673 409529683
## 23 228551678 103038290 354065066 36595516 420507840
## 24 228551678 96248950 360854405 26212117 430891239
# Analiza reszt
checkresiduals(forecast_wydatki) # Wykres reszt i test normalności
##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,1,0)
## Q* = 2.6738, df = 3, p-value = 0.4447
##
## Model df: 0. Total lags used: 3
Model ARIMA(0,1,0) jest bardzo prosty i zapewnia liniowe prognozy. Duża wariancja reszt oraz wysoka wartość RMSE i MAE wskazują, że model może być zbyt uproszczony. Wyniki sugerują poszukiwanie lepszej metody.