Beruflich Dokumente
Kultur Dokumente
#install.packages('tidyverse')
library(tidyverse)
#install.packages('lubridate')
library(lubridate)
############################################################################
### Incarcarea datelor salvate anterior in fisierul `.RData` ###
############################################################################
setwd('/Users/marinfotache/Downloads/chinook')
load(file = 'chinook.RData')
############################################################################
### Interogari tidyverse ###
############################################################################
############################################################################
# # -- In ce ani s-au inregistrat vanzari?
############################################################################
###
# Solutie 1 - `mutate`, `select`, `distinct`, `arrange`
temp <- invoice %>% # punctul de pornire: tabela/cadrul `invoice`
mutate (year = lubridate::year(invoicedate)) %>% # adaugare coloana `year`
select (year) %>% # se pastreaza numai atributul `year`
distinct(year) %>% # se elimina dublurile
arrange(year) # se ordoneaza rezultatul dupa valorile atributului `year`
View(temp)
# Solutie 2 - `transmute`, `distinct`, `arrange`
temp <- invoice %>% # punctul de pornire: tabela/cadrul `invoice`
transmute (year = lubridate::year(invoicedate)) %>% # se elimina toate coloanele,
# cu exceptia noi coloane `year`
distinct(year) %>% # se elimina dublurile
arrange(year) # se ordoneaza rezultatul dupa valorile atributului `year`
############################################################################
# # -- Extrageti lunile calendaristice (si anii) in care
# # -- s-au inregistrat vanzari
############################################################################
###
# Solutie 1 - `mutate`, `select`, `distinct`, `arrange`
temp <- invoice %>% # punctul de pornire: tabela/cadrul `invoice`
mutate ( # se adauga doua coloane, `year` si `month`
year = lubridate::year(invoicedate),
month = lubridate::month(invoicedate)
) %>%
select (year, month) %>% # se pastreaza numai cele doua atribute
distinct(year, month) %>% # se elimina dublurile combinatiei (year, month)
arrange(year, month) # se ordoneaza inregistrarile din rezultat dupa valorile
# atributului `year`; la valori egale ale `year`,
# criteriul de balotaj e `month`
############################################################################
# # -- Care lungimea numelui pentru fiecare artist/formatie?
############################################################################
artist %>%
mutate (lungime_nume = nchar(name)) -> temp
############################################################################
# # -- Sa se afiseze artistii in ordinea descrescatoare a lungimii numelui
############################################################################
############################################################################
# # -- Sa se afiseze numele formatat al artistilor, conform urmatoarei cerinte:
# # -- 1. pentru artistii cu numele lung de pana la 11 caractere,
# se afiseaza numele intreg
# # -- 2. pentru artistii cu numele mai lung de 11 caracterere,
# se extrag cinci caractere, se adauga `...` la mijloc
# si se finalizeaza cu ultimele cinci caractere
############################################################################
paste('a', 'b')
paste('a', 'b', 'c', sep = '###')
paste0('a', 'b', 'c')
############################################################################
# # -- Care sunt artistii sau formatiile cu numele alcatuit
# dintr-un singur cuvant ? (adica numele NU contine niciun spatiu)
############################################################################
###
# solutie bazata pe `regular_expression` (`str_detect`)
temp <- artist %>%
filter(!str_detect(name, ' '))
# solutie cu `str_remove_all`
temp <- artist %>%
filter (name == str_remove_all(name, ' '))
# solutie cu `str_replace_all`
temp <- artist %>%
filter (nchar(name) == nchar(str_replace_all(name, ' ', '')))
# solutie cu `str_remove_all`
temp <- artist %>%
filter (nchar(name) == nchar(str_remove_all(name, ' ')))
############################################################################
# # -- Care sunt artistii sau formatiile cu numele alcatuit din cel
# putin doua cuvinte ? (adica numele contine cel putin singur spatiu)
############################################################################
##
############################################################################
# # -- Care sunt artistii sau formatiile cu numele alcatuit din exact doua cuvinte ?
# # -- (adica numele contine un singur spatiu)
############################################################################
# -- soluție cu REPLACE
temp <- artist %>%
filter (nchar(name) == nchar(str_replace_all(name, ' ', '')) + 1)
#
#
# -- ############################################################################
# -- Probleme de rezolvat la curs/laborator/acasa
# -- ############################################################################
#
# -- Extrageti numele de utilizator de pe contul de e-mail al fiecarui angajat
#
# -- Extrageti toate serverele de e-mail (ex. `gmail.com`) ale clientilor
#