knitr::opts_chunk$set(echo = TRUE) library(robonomistClient) library(pttrobo) library(tidyverse) library(lubridate) library(pttdatahaku) # devtools::load_all(path = '../pttrobo/') devtools::load_all() read_ennuste_data <- function(ennuste_data_file) { readxl::read_excel(ennuste_data_file) } # ennuste_data <- # read_ennuste_data("/Documents and Settings/PekkaKinnunen/OneDrive - Pellervon Taloustutkimus PTT ry/ME/Taulut ME/Ennuste kokoomataulukko_kevät_2022.xlsx") ennuste_data <- read_ennuste_data("~/../Pellervon Taloustutkimus PTT ry/Ennuste - Taulut ME/Ennuste kokoomataulukko_kevät_2022.xlsx") colnames(ennuste_data) start_time <- "2014-01-01"
cereals <- c("Wheat", "Corn", "Soybean") ptt_data_robo("tidy/usda_psd") |> filter(commodity_description %in% cereals, attribute_description %in% c( "Production"), str_detect(country_name, pattern = "EU", negate =T)) |> filter_recode(commodity_description = c(#"Maissi"= "Corn", "Vehnä" = "Wheat")) |> group_by(attribute_description, market_year, commodity_description) |> summarise(value = sum(value, na.rm = T)/1000) |> ungroup() |> mutate( tiedot = "Vehnä", time = lubridate::ymd(paste(market_year+1, "7", "1", sep = "-"))) |> filter(time >= start_time) |> ptt_plot( title= "Maailman viljantuotanto", grouping = tiedot, subtitle = "milj. tonnia", caption = "Lähde: USDA ja PTT", rangeslider = FALSE, zeroline = F, axis_limits = list(y = c(700, 800)), hovertext = list(rounding = 1, unit = "milj. tonnia", extra = "") ) |> ptt_plot_add_prediction(pred_data = ennuste_data |> filter(luokka == "Maailman viljantuotanto"),satovuosi = T) |> ptt_plot_create_widget()
# Viljan tuotanto Suomessa ptt_data_robo("luke/02_Maatalous/04_Tuotanto/14_Satotilasto/03_Vilja-_ja_perunasato_1920-.px") |> filter(laji %in% c("Vehnä","Ruis","Ohra", "Kaura")) |> mutate(tiedot = laji) |> filter(time >= start_time) |> mutate(time = time + months(6)) |> ptt_plot( grouping = tiedot, title = "Viljan tuotanto Suomessa", subtitle = "tuhatta tonnia", caption = "Lähde: Luke ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 1, unit = "tuhatta tonnia", extra = "") ) |> ptt_plot_add_prediction(pred_data = ennuste_data |> filter(luokka == "Viljan tuotanto Suomessa"), satovuosi = T) |> ptt_plot_create_widget() # viljan tuottajahinta ptt_data_robo_l("luke/02_Maatalous/06_Talous/02_Maataloustuotteiden_tuottajahinnat/07_Tuottajahinnat_Vilja_rypsi_rapsi_kk.px") |> filter(hinta == "Perushinta 1)") |> filter_recode( laji = c("Vehnä" = "VEHNÄ YHTEENSÄ 2)", "Kaura" = "KAURA YHTEENSÄ 5)", "Ohra" = "OHRA YHTEENSÄ 3)")) |> mutate(tiedot = laji) |> filter(time >= start_time) |> group_by(tiedot) |> #mutate(value = 100*(value /lag(value, n = 12, order_by = time)-1)) |> ungroup() |> ptt_plot( title= "Viljan tuottajahinnat Suomessa", grouping = tiedot, subtitle = "€ / tonni", caption = "Lähde: Luke ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 1, unit = "€/tn", extra = "") ) |> ptt_plot_add_prediction(pred_data = ennuste_data |> filter(luokka == "Viljan tuottajahinnat Suomessa"), satovuosi = F) |> ptt_plot_create_widget()
# Maidon tuotanto # # ptt_data_robo("luke/02_Maatalous/04_Tuotanto/02_Maito-_ja_maitotuotetilasto/02_Kuukausitilastot/02_Meijerimaidon_tuotanto_kk.px") |> # mutate(year = lubridate::year(time)) |> # filter_recode( # tieto = c("Vastaanotettu maitomäärä" = "VASTAANOTETTU MAITOMÄÄRÄ YHTEENSÄ (l) 2)")) |> # group_by(tieto,year) |> # summarise(value = sum(value, na.rm = T), .groups = "drop") |> # ungroup() |> # filter(year >= 2014, year < 2022) |> # mutate(tiedot = tieto, # time = as.Date(paste(year, "1", "1", sep = "-"))) |> # ptt_plot( # grouping = tiedot, # title ="Maidon tuotanto Suomessa",subtitle = "Litraa", # caption = "Lähde: Luke ja PTT", # rangeslider = FALSE, # zeroline = F, # hovertext = list(rounding = 1, unit = "litraa", extra = "") # ) |> # ptt_plot_add_prediction(pred_data = ennuste_data |> # filter(luokka == "Maidon tuotanto")) |> # ptt_plot_create_widget() s1 <- ptt_data_robo("luke/02_Maatalous/04_Tuotanto/02_Maito-_ja_maitotuotetilasto/02_Kuukausitilastot/02_Meijerimaidon_tuotanto_kk.px") |> filter_recode( tieto = c("Vastaanotettu maitomäärä" = "VASTAANOTETTU MAITOMÄÄRÄ YHTEENSÄ (l) 2)")) |> filter(time >= start_time) |> mutate(value = 12 * statfitools::trend_series(value, time, x11 = "") / 1000000) |> mutate(tiedot = "Kuukausi") s2 <- ptt_data_robo_l("luke/02_Maatalous/04_Tuotanto/02_Maito-_ja_maitotuotetilasto/04_Vuositilastot/04_Maidon_kokonaistuotanto.px") |> filter_recode( tuotanto_kaytto = c( "Maito yhteensä" = "MAITO YHTEENSÄ")) |> mutate(tiedot = tuotanto_kaytto, time = time + months(6)) |> filter(time >= start_time) bind_rows(s1, s2)|> ptt_plot( grouping = tiedot, title ="Maidon tuotanto Suomessa",subtitle = "milj. litraa", caption = "Lähde: Luke ja PTT", rangeslider = FALSE, zeroline = F, axis_limits = list(y = c(2000,2400)), hovertext = list(rounding = 0, unit = "milj. litraa", extra = "") ) |> ptt_plot_add_prediction(pred_data = ennuste_data |> filter(luokka == "Maidon tuotanto")) |> ptt_plot_create_widget() # Maidon tuottajahinnat suomi ja eu milk_countries <- c( Suomi = "FI", EU = "EU", Tanska = "DK", Saksa = "DE" ) # TODO: Suomi jää muiden viivojen alle mutta factor-levelit kääntämällä Suomi tulee keltaisella viivalla mikä näkyy vähän huonosti. ptt_data_robo_l("tidy/dg_agri") |> filter(product_desc %in% "Raw Milk", country %in% milk_countries) |> filter(time >= start_time) |> mutate(tiedot = factor(country, milk_countries, names(milk_countries))) |> ptt_plot( grouping = tiedot, title ="Maidon tuottajahinta",subtitle = "€ / 100kg", caption = "DG Agri ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 1, unit = "€ / 100kg", extra = "") ) |> ptt_plot_add_prediction(pred_data = ennuste_data |> filter(luokka == "Maidon tuottajahinta keskimäärin")) |> ptt_plot_create_widget()
# tuottajahinnat ptt_data_robo("StatFin/hin/mthi/statfin_mthi_pxt_11fp.px") |> filter_recode( maatalouden_tuottajahintaindeksin_luokitus = c("Naudanliha" = "111000 Nauta", "Sianliha" = "112000 Siat", "Siipikarjanliha" = "115000 Siipikarja"), tiedot = "Maatalouden tuottajahintaindeksi (2015=100)") |> group_by(across(where(is.factor))) |> mutate(value = pc(value, 12, order_by = time), luokka = "Lihan tuottajahinnat Suomessa", tiedot = maatalouden_tuottajahintaindeksin_luokitus ) |> ungroup() |> filter(time >= start_time) |> #drop_na() |> #filter(tiedot == "Naudanliha") |> #mutate(time = lubridate::year(time)) |> #group_by(tiedot, time) |> #summarise(value = mean(value, na.rm=T)) |> ptt_plot( title= "Lihan tuottajahinnat", grouping = tiedot, subtitle = "%, muutos vuoden takaa", caption = "Lähde: Tilastokeskus ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 1, unit = "%", extra = "") ) |> ptt_plot_add_prediction(pred_data = ennuste_data) |> ptt_plot_create_widget() # # Lihan kulutus ja tuotanto # # liha_kulutus <- # ptt_data_robo("luke/02_Maatalous/08_Muut/02_Ravintotase/02_Ravintotase.px") |> # filter_recode( # tieto = c( # Tuotanto = "Tuotanto", # "Kokonaiskulutus" = "KOTIMAINEN KÄYTTÖ YHTEENSÄ" # ), # elintarvike = c( # "Naudanliha" = "Naudanliha 4)", # "Sianliha" = "Sianliha 4)", # "Siipikarjanliha" = "Siipikarjanliha 4)") # ) |> # rename(laji = elintarvike) |> # mutate(tiedot = paste(laji, "n ", tolower(tieto), sep = ""), # time = time + months(6)) |> # filter(time >= start_time) # # ptt_data_robo_l("StatFin/vrm/kuol/statfin_kuol_pxt_12at.px") # # # liha_kulutus|> # filter(laji == "Sianliha") |> # ptt_plot( # title= "Sianlihan kulutus ja tuotanto Suomessa", # grouping = tiedot, # subtitle = "milj. kg", # caption = "Lähde: Luke ja PTT", # rangeslider = FALSE, # zeroline = F, # hovertext = list(rounding = 1, unit = "milj. kg", extra = "") # ) |> # ptt_plot_add_prediction(pred_data = ennuste_data) |> # ptt_plot_create_widget() # # # liha_kulutus|> # filter(laji == "Naudanliha") |> # ptt_plot( # title = "Naudanlihan kulutus ja tuotanto Suomessa", # subtitle = "milj. kg", # grouping = tiedot, # subtitle = "milj. kg", # caption = "Lähde: Luke ja PTT", # rangeslider = FALSE, # zeroline = F, # hovertext = list(rounding = 1, unit = "milj. kg", extra = "") # ) |> # ptt_plot_add_prediction(pred_data = ennuste_data |> filter(luokka %in% )) |> # ptt_plot_create_widget() # # liha_kulutus|> # filter(laji == "Siipikarjanliha") |> # filter(time >= start_time) |> # aplot_lines(colour = tieto, title = "Siipikarjanlihan kulutus ja tuotanto Suomessa", # subtitle = "milj. kg", # source = "Luke")
# Tuotantopanokset ptt_data_robo_l("StatFin/hin/ttohi/statfin_ttohi_pxt_11gv.px") |> filter_recode(maatalouden_tuotantovalineiden_ostohintaindeksin_luokitus = c("Energia" = "202000 ENERGIA, VOITELUAINEET", "Lannoitteet" = "203000 LANNOITTEET JA MAANPARANNUSAINEET", "Rehut" = "206000 ELÄINTEN REHUT"), #, #"Tuotantotarvikkeet yhteensä" = "200000 MAATALOUDEN TUOTANTOTARVIKKEET JA PALVELUT (Panos 1)"), tiedot = "Maatalouden tuotantovälineiden ostohintaindeksin vuosimuutos (2015=100)") |> filter(time >= start_time) |> mutate(tiedot = maatalouden_tuotantovalineiden_ostohintaindeksin_luokitus ) |> ptt_plot( title = "Maatalouden tuotantopanosten hinnat", grouping = tiedot, subtitle = "%, vuosimuutos", caption = "Lähde: Luke ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 1, unit = "%", extra = "") ) |> ptt_plot_add_prediction(pred_data = ennuste_data) |> ptt_plot_create_widget()
# Yrittäjätulo taloustilit <- ptt_data_robo_l("StatFin/maa/eaa/statfin_eaa_pxt_12d7.px") |> filter(maatalouden_taloustili %in% c("18 Maataloustoimialan tuotos (16 + 17)", "31 Yrittäjätulo (27 - 28 - 29 + 30)", "19 Välituotekäyttö yhteensä", "21 Kiinteän pääoman kuluminen", "23 Palkansaajakorvaukset", "28 Maanvuokrat", "29 Korot, maksetut", "30 Korot, saadut", "25 Muut tuotantotukipalkkiot", "18 Maataloustoimialan tuotos (16 + 17)") ) |> filter_recode(tiedot =c("th" = "Tuottajahintaan, käyvin hinnoin, miljoonaa euroa", "ph" = "Perushintaan, käyvin hinnoin, miljoonaa euroa")) |> separate(col = maatalouden_taloustili , into = c("id", "selite"), sep = " ", extra = "merge")|> mutate(tili_tiedot = paste(tiedot,id, sep = "_")) |> pivot_wider(id_cols = time, names_from = tili_tiedot, values_from = value) |> mutate(maatal_yht = ph_18-th_18, kulut_yht = ph_19 + ph_21+ph_23 + ph_28 - ph_30 + ph_29, yrittajatulo = ph_31, maatalous_tuet = maatal_yht + ph_25, markkinatulot = th_18) |> filter(time >= start_time) |> select(maatalous_tuet, kulut_yht, yrittajatulo, markkinatulot, time) |> pivot_longer(cols = maatalous_tuet:markkinatulot, names_to ="tiedot") |> mutate(tiedot = recode(tiedot, !!! c("yrittajatulo"= "Yrittäjätulo", "markkinatulot" = "Tulot markkinoilta", "maatalous_tuet" = "Maataloustuet yhteensä", "kulut_yht"= "Kulut yhteensä"))) ptt_plot(taloustilit, grouping = tiedot, title ="Maatalouden taloustilit", subtitle = "milj. €", caption = "Lähde: Tilastokeskus ja PTT", rangeslider = FALSE, zeroline = T, hovertext = list(rounding = 0, unit = "milj. €", extra = "") ) |> ptt_plot_add_prediction(pred_data = ennuste_data ) |> ptt_plot_create_widget()
## Elintarviketeollisuus volyymi, liikevaihto # volyymi elintarvike_vol <- ptt_data_robo("StatFin/ttvi/statfin_ttvi_pxt_13bh.px") |> filter_recode(toimiala_tol_2008 = c("Volyymi" = "10-11 Elintarviketeollisuus" )) |> filter(tiedot == "Työpäiväkorjattu indeksisarja") |> mutate(tiedot = "Elintarviketeollisuus, tuotannon volyymi") elintarvike_lv <-ptt_data_robo("StatFin/tlv/statfin_tlv_pxt_112c.px") |> filter_recode(toimiala =c("Liikevaihto" = "10-11 Elintarviketeollisuus" )) |> filter(tiedot == "Työpäiväkorjattu indeksisarja", muuttuja == "Liikevaihto") |> mutate(tiedot = "Elintarviketeollisuus, liikevaihto") bind_rows(elintarvike_vol, elintarvike_lv) |> filter(time >= start_time) |> group_by(tiedot) |> mutate(value = statfitools::trend_series(value, time = time, x11="")) |> mutate(value= 100*(value / lag(value, n = 12, order_by = time)-1)) |> ungroup() |> ptt_plot( grouping = tiedot, title = "Elintarviketeollisuus", subtitle = "%, vuosimuutos, trendi", caption = "Lähde: Tilastokeskus ja PTT", hovertext = list(rounding = 1, unit = "%", extra = "") )|> ptt_plot_add_prediction(pred_data = ennuste_data ) |> ptt_plot_create_widget() # Elintarvikkeiden tuonti ja vienti dat_me_sitc <- ptt_data_robo( "tulli/uljas_sitc", dl_filter = list( "Tavaraluokitus SITC2" = c("00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "11"), "Maa" = "AA", "Suunta" = c("Vienti määrämaittain", "Tuonti alkuperämaittain"), "Indikaattorit" = "Tilastoarvo (euro)" ) ) |> filter_recode( suunta = c("Elintarvikkeiden vienti" = "Vienti määrämaittain", "Elintarvikkeiden tuonti" = "Tuonti alkuperämaittain") ) dat_me_sitc |> filter(time >= start_time) |> group_by(maa, suunta, indikaattorit, time) |> summarise(value = 12 * sum(value)/1e6) |> mutate(tiedot = suunta, value = statfitools::trend_series(value, time = time, x11="")) |> ungroup() |> ptt_plot( grouping = tiedot, title = "Elintarvikkeiden vienti ja tuonti", subtitle = "milj. euroa vuositasolle korotettuna", caption = "Lähde: Tulli ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 0, unit = "milj. €", extra = "") )|> ptt_plot_add_prediction(pred_data = ennuste_data ) |> ptt_plot_create_widget()
# Elintarvikkeet ptt_data_robo_l("StatFin/khi/statfin_khi_pxt_11xq.px") |> filter(hyodyke %in% c("KULUTTAJAHINTAINDEKSI", "Elintarvikkeet", "ELINTARVIKKEET JA ALKOHOLITTOMAT JUOMAT")) |> pivot_wider(names_from = indeksisarja, values_from =value, names_repair = "universal") |> group_by(hyodyke) |> mutate(across(where(is.numeric), ~100* (.x / lag(.x, n = 12, order_by = time) - 1))) |> ungroup() |> filter(time >= start_time) |> mutate(value = coalesce(KHI.2015.100, KHI.2010.100, KHI.2005.100, KHI.2000.100)) |> select(!c(KHI.2015.100, KHI.2010.100, KHI.2005.100, KHI.2000.100)) |> mutate(tiedot = str_to_sentence(hyodyke)) |> mutate(tiedot = fct_recode(tiedot, Kuluttajahinnat = "Kuluttajahintaindeksi")) |> ptt_plot( grouping = tiedot, title = "Elintarvikkeiden hinnat", subtitle = "%, muutos vuoden takaa", caption = "", #Lähde: Tilastokeskus ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 1, unit = "%", extra = "") )|> ptt_plot_add_prediction(pred_data = ennuste_data ) |> ptt_plot_create_widget() # ptt_data_robo_l("StatFin/hin/khi/kk/statfin_khi_pxt_11xq.px") |> # filter(hyodyke %in% c("KULUTTAJAHINTAINDEKSI", "Elintarvikkeet", "ELINTARVIKKEET JA ALKOHOLITTOMAT JUOMAT")) |> # pivot_wider(names_from = indeksisarja, values_from =value, names_repair = "universal") |> # group_by(hyodyke) |> # mutate(across(where(is.numeric), ~100* (.x / lag(.x, n = 12, order_by = time) - 1))) |> # ungroup() |> # #filter(time >= start_time) |> # mutate(value = coalesce(KHI.2015.100, KHI.2010.100, KHI.2005.100, KHI.2000.100)) |> # select(!c(KHI.2015.100, KHI.2010.100, KHI.2005.100, KHI.2000.100)) |> # mutate(tiedot = str_to_sentence(hyodyke)) |> # mutate(tiedot = fct_recode(tiedot, Kuluttajahinnat = "Kuluttajahintaindeksi")) |> # mutate(year = lubridate::year(time)) |> # group_by(year, hyodyke) |> # summarise(value = mean(value, na.rm=T)) |> filter(hyodyke == "Elintarvikkeet") |> view()
ptt_data_robo_l("StatFin/hin/khi/kk/statfin_khi_pxt_11xd.px") |> filter_recode(hyodyke = c( "Viljatuotteet ja leipä" = "01.1.1 Viljatuotteet ja leipä", "Liha" = "01.1.2 Liha", "Maitotuotteet, juusto ja kananmunat" = "01.1.4 Maitotuotteet, juusto ja kananmunat" ), tiedot = c("Vuosimuutos (%)") ) |> mutate(tiedot = hyodyke) |> filter(time >= start_time) |> ptt_plot( grouping = tiedot, title = "Elintarvikkeryhmien hinnat", subtitle = "%, muutos vuoden takaa", caption = "", # Lähde: Tilastokeskus ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 1, unit = "%", extra = "") )|> ptt_plot_add_prediction(pred_data = ennuste_data |> filter(luokka == "Elintarvikkeiden hintojen muutos")) |> ptt_plot_create_widget()
ennuste_data |> filter(luokka %in% c("Tulot markkinoilta","Kulut yhteensä","Maataloustuet yhteensä","Yrittäjätulo")) |> pivot_longer(cols = `2014`:`2023`, names_to = "time", values_to = "value") |> filter(time < 2022) |> mutate(tiedot = sarja_nmi, time = ymd(paste(time, "-1-1", sep = ""))) |> ptt_plot( grouping = tiedot, title ="Maatalouden yrittäjätulo", subtitle = "milj. euroa", caption = "Lähde: Eurostat ja PTT", rangeslider = FALSE, zeroline = F, hovertext = list(rounding = 1, unit ="milj. euroa", extra = "")) |> ptt_plot_add_prediction(pred_data = ennuste_data |> filter(luokka %in% c("Tulot markkinoilta","Kulut yhteensä","Maataloustuet yhteensä","Yrittäjätulo"))) |> ptt_plot_create_widget()
ptt_plot_upload_widgets()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.