Sunteți pe pagina 1din 5

setwd('D:/Study/DM/R_tv')

load('radare2018ro.RData')

install.packages("tidyverse")

library(dplyr)

library(tidyverse)

library(lubridate)

#1. Ce mașini cu motorul mai mare de 4000 cc au fost înmatriculate în localitatea Flamânzi, jud. Botoșani (BT)?

vehicule %>%

filter (CAPCILINDR>4000) %>%

inner_join(localitati, by=c("IDLOCINMATR"="IDLOC")) %>%

filter(DENLOC=='Flamanzi' & JUD=='BT')

#2. În câte contravenții diferența dintre viteza efectivă (înregistrată) și cea legală a fost mai mare de 50 KM/h ?

contraventii_viteza %>%

filter((VITEZAEFECTIVA - VITMAXLEGALA)>50) %>%

#tally()

summarize (numar=n())

#3. Top 5 - șoferi cu cele mai multe contravenții

soferi %>%

inner_join(contraventii, by="IDSOFER") %>%

group_by(NUMESOFER, CNPSOFER) %>%

summarize(nr_contr = n()) %>%

ungroup() %>%

arrange(desc(nr_contr)) %>%

top_n(5, nr_contr)

#4. Care sunt județele în care s-au înregistrat cele mai multe depășiri de viteză în anul 2009?

localitati %>%

inner_join(contraventii, by=("IDLOC"="IDLOCCONTR")) %>%

inner_join(contraventii_viteza, by="IDCONTR")

filter()
#6. Care este valoarea medie a amenzilor pe 2017 înregistrate în localitățile județului Neamț (NT)?

contraventii %>%

filter (year(DATACONTR) == 2017) %>%

inner_join(localitati, by = c("IDLOCCONTR" = "IDLOC")) %>%

filter(JUD == "NT") %>%

summarise(amenda_medie = mean(VALAMENDA))

#7. Care sunt localitățile în care s-au înregistrat mai multe contravenții decât în loc. Traian, jud. NT?

contraventii %>%

inner_join(localitati, by = c("IDLOCCONTR" = "IDLOC")) %>%

group_by(DENLOC, JUD) %>%

summarise(nr_contrav = n()) %>%

mutate (nr_contrav_traian = if_else(DENLOC == "Traian" &

JUD == 'NT', nr_contrav, 0L)) %>%

ungroup() %>%

filter(nr_contrav > max(nr_contrav_traian))

#8. Care sunt modelele de autovehicule care au toate capacitățile cilindrice mai mici de 3000 cc?

vehicule %>%

filter (CAPCILINDR < 3000) %>%

distinct (MODEL, CAPCILINDR) %>%

group_by(MODEL) %>%

summarise (nr_cc_sub3000 = n()) %>%

inner_join(

vehicule %>%

distinct(MODEL, CAPCILINDR) %>%

group_by(MODEL) %>%

summarise(nr_cc_sub3000 = n()))

#9. Ce șoferi și-au achitat total contravențiile din 2014?

#glimpse(contraventii)

soferi %>%

inner_join(contraventii) %>%

filter (year(DATACONTR) == 2014) %>%


group_by(NUMESOFER, CNPSOFER) %>%

summarise(val_amenzi = sum(VALAMENDA)) %>%

left_join( soferi %>%

inner_join(contraventii) %>%

filter (year(DATACONTR) == 2014) %>%

inner_join(plati_amenzi) %>%

group_by(NUMESOFER, CNPSOFER) %>%

summarise(val_plati = sum(VALOAREPLATA)) ) %>%

filter (val_amenzi <= coalesce(val_plati, 0))

#10. Ce șoferi au fost amendați în măcar localitățile în care a fost amendat Manetă Gheorghe , din Pocreaca, jud. IS ?

soferi %>%

inner_join(contraventii) %>%

inner_join( # jonctionam cu localitatile in care a fost amendat MANETA

soferi %>%

inner_join(localitati, by = c("IDLOCSOFER" = "IDLOC")) %>%

filter (NUMESOFER == "Maneta Gheorghe" & DENLOC == "Pocreaca" & JUD == "IS") %>%

select (IDSOFER) %>%

inner_join(contraventii ) %>%

distinct(IDLOCCONTR)

) %>%

group_by(NUMESOFER, CNPSOFER) %>%

summarise(nr_loc_amenzi = n_distinct(IDLOCCONTR)) %>%

inner_join(

soferi %>%

inner_join(localitati, by = c("IDLOCSOFER" = "IDLOC")) %>%

filter (NUMESOFER == "Maneta Gheorghe" & DENLOC == "Pocreaca" & JUD == "IS") %>%

select (IDSOFER) %>%

inner_join(contraventii ) %>%

summarise(nr_loc_amenzi = n_distinct(IDLOCCONTR) )

#11. Obţineți centralizatorul numărului de contravenții pe trimestrul I, 2014

localitati %>%
left_join(contraventii %>%

filter (year(DATACONTR) == 2014 & month(DATACONTR) <= 3) %>%

mutate (luna = month(DATACONTR)),

by = c("IDLOC" = "IDLOCCONTR")) %>%

group_by(DENLOC, JUD) %>%

summarise (

ian = sum(if_else(luna == 1, 1, 0), na.rm = TRUE),

feb = sum(if_else(luna == 1, 1, 0), na.rm = TRUE),

mar = sum(if_else(luna == 1, 1, 0), na.rm = TRUE)

) %>%

mutate(total_trim_1 = ian + feb + mar) %>%

bind_rows( # add total row

bind_cols(

tibble (DENLOC = "==TOTAL==", JUD = ""),

contraventii %>%

filter (year(DATACONTR) == 2014 & month(DATACONTR) <= 3) %>%

mutate (luna = month(DATACONTR)) %>%

summarise (

ian = sum(if_else(luna == 1, 1, 0), na.rm = TRUE),

feb = sum(if_else(luna == 1, 1, 0), na.rm = TRUE),

mar = sum(if_else(luna == 1, 1, 0), na.rm = TRUE)

)) %>%

mutate(total_trim_1 = ian + feb + mar)

#12. Obţineți lista, pentru fiecare șofer, a tuturor contravențiilor pe anul 2014, folosind SQL recursiv.

soferi %>%

inner_join(contraventii) %>%

group_by(NUMESOFER, CNPSOFER) %>%

summarise(lista_contraventii = paste((DATACONTR), DESCRIERE, sep=":", collapse= ";"))

#13. Obţineți, folosind PIVOT, lista, pentru fiecare șofer, a numărului de contravenții pentru anii 2010-2018.

soferi %>%

inner_join(contraventii) %>%
filter(year(DATACONTR) >= 2010) %>%

mutate(an = year(DATACONTR)) %>%

group_by(NUMESOFER, CNPSOFER, an) %>%

summarise (nr_contr = n()) %>%

spread(an, nr_contr, fill=0)

#14. Obţineți lista contravențiilor fiecărui șofer; se va insera o coloană ce indică a câta contravenție este pe anul curent

soferi %>%

inner_join(contraventii) %>%

mutate(an = year(DATACONTR), a = date(DATACONTR)) %>%

select(NUMESOFER, CNPSOFER, IDCONTR, DATACONTR, VALAMENDA, an, a) %>%

arrange(CNPSOFER, DATACONTR) %>%

group_by(NUMESOFER, CNPSOFER, an) %>%

mutate(nr_crt_contraventie = row_number()) %>%

ungroup() %>%

select(-an, -DATACONTR)

#functie

myt <- tibble(x=1:5, z=x^2)

myt

myt %>%

summarise(text=paste(x,z, sep=" are patratul ", collapse=";"))

S-ar putea să vă placă și