İlkin hazırlıq

Tapsiriq 1

netflix və netflix_novruz cədvəllərini import edin və .rds formatında yaddaşa verin. (direktoriya sərbəst)

ntf=fread("C:/Users/user/OneDrive/Masaüstü/R/Export&Import fayl/ntx.csv")
ntf_n=fread("C:/Users/user/OneDrive/Masaüstü/R/Export&Import fayl/ntx_n.csv")


saveRDS(ntf,"C:/Users/user/OneDrive/Masaüstü/R/Export&Import fayl/ntx_new.rds")
saveRDS(ntf_n,"C:/Users/user/OneDrive/Masaüstü/R/Export&Import fayl/ntx_n_new.rds")

Tapsiriq 2

Verilişin yayım tarixindən (date_added) keçən müddəti (gün etibarı ilə) ehtiva edən: show_age_days və veriliş müddətini (duration) dəqiqə etibarı (1 sezon 500 dəq) ilə ifadə edən: duration_min məlumat həddlərini yaradın.

ntf$show_age_days=as.numeric(Sys.Date()-ntf$date_added)


ntf=ntf[, duration_min := case_when(
  duration %like% "Season"  ~ as.numeric(str_extract(duration, "\\d+"))*500,
  duration %like% "min"  ~ as.numeric(gsub("min","",duration)),
  TRUE ~ NA
)]

Tapsiriq 3

show_age_days_cat və duration_min_cat kateqoriya məlumat həddlərini yaradın. (case_when)

ntf=ntf[, show_age_days_cat := case_when(
  show_age_days>=1000 & show_age_days<2000 ~ "1000=<2000",
  show_age_days>=2000 & show_age_days<3000 ~ "2000=<3000",
  show_age_days>=3000 & show_age_days<4000 ~ "3000=<4000",
  show_age_days>=4000 & show_age_days<5000 ~ "4000=<5000",
  show_age_days>=5000 & show_age_days<6000 ~ "5000=<6000",
  show_age_days>=6000 ~ "6000<...",
  TRUE ~ NA
)]



ntf=ntf[, duration_min_cat := case_when(
  duration_min>=0 & duration_min<100 ~ "0=<100",
  duration_min>=100 & duration_min<500 ~ "100=<500",
  duration_min>=500 & duration_min<1000 ~ "500=<1000",
  duration_min>=1000 & duration_min<3000 ~ "1000=<3000",
  duration_min>=3000 & duration_min<6000 ~ "3000=<6000",
  duration_min>=6000 ~ "6000<...",
  TRUE ~ NA
)]

Tapsiriq 4

netflix_novruz cədvəlini netflix-ə join edin.

tabjoin=left_join(ntf, ntf_n, by = "show_id")

Tapsiriq 5

Novruzun verilişə baxdığı həftənin gününü hərf/abreviatura kimi ifadə edin. (Misal: “Mon”, “Tue”, “Wed” və ya “B.E”, “Ç.A”, “C” və s.) mövcud məlumat həddini əvəz edin, yenisi yaradılmamalıdır.

week_days = c("Mon","Tue","Wed","Thu","Fri","Sat","Sun")

 
ntf_n$wday_watched = week_days[ntf_n$wday_watched]

Tapsiriq 6

Ölkə və Növə (type) görə veriliş sayı və toplam veriliş müddətini ehtiva edən cədvəl yaradın. Şərh verin.

tabs=ntf[,list(verlis_sayi=n_distinct(show_id),total_duration_min=sum(duration_min,na.rm = T)),by=list(country,type)]

datatable(tabs,
          extensions = 'Buttons',
           options = list(paging = TRUE,
                          searching = TRUE,
                          fixedColumns = TRUE,
                          autoWidth = TRUE,
                          ordering = TRUE,
                          dom = 'Bftp',
                          buttons = c('copy', 'csv', 'excel','print')
                            ))

Məlumatlara əsasən, ABŞ həm film, həm də TV şou istehsalında açıq liderdir və ümumi bazara dominant təsir göstərir. Filmlərdə Hindistan, TV şoularda isə Böyük Britaniya, Pakistan və Cənubi Koreya ön plana çıxır. TV şouların ümumi müddəti filmlərə nisbətən dəfələrlə yüksəkdir, bu da onların daha uzunmüddətli istehsal olunduğunu göstərir. Anomaliya olaraq, Kanadada az sayda (84) TV şou olsa da, çox yüksək ümumi müddət (109.500 dəqiqə) qeydə alınıb. Boşluq kimi isə bir çox ölkədə (məsələn, Sloveniya, Namibiya, Somali) yalnız 1–2 film və ya şounun olması, bazarların zəif inkişaf etdiyini göstərir.

Tapsiriq 7

show_age_days_cat və duration_min_cat görə veriliş sayını ehtiva edən cədvəl yaradın, qrafik qurun, şərh verin.

tabx=ntf[,list(verlis_sayi=n_distinct(show_id)),by=list(show_age_days_cat,duration_min_cat)]

datatable(tabx,
          extensions = 'Buttons',
           options = list(paging = TRUE,
                          searching = TRUE,
                          fixedColumns = TRUE,
                          autoWidth = TRUE,
                          ordering = TRUE,
                          dom = 'Bftp',
                          buttons = c('copy', 'csv', 'excel','print')
                            ))
ggp=ggplot(tabx,aes(x=duration_min_cat,y=verlis_sayi,fill = show_age_days_cat,color=show_age_days_cat))+geom_col()+labs(title = "Verlis muddeti kateqoriyasina görə veriliş sayı",x="Verlis muddeti kateqoriyasi")+theme_ft_rc()

ggplotly(ggp)

Bu qrafikə əsasən verliş müddət kateqoriyalarına görə verilislərin sayı ciddi fərqlər göstərir. 0–100 gün və 100–500 gün aralığında ən çox verilmiş qeydə alınıb, bu isə qısa müddətli və orta müddətli verilislərin bazarda dominant olduğunu göstərir. 1000–3000 gün aralığında verilislərin sayı nəzərəçarpacaq dərəcədə azalır, 5000–10000 gün aralığında isə yenidən müəyyən artım müşahidə olunur ki, bu da bazarda uzun müddətli sabit verilislərin mövcudluğuna işarədir. 6000 gün üzəri isə demək olar ki, boş qalıb, verilislərin sayı çox azdır.

Tapsiriq 8

Əlavə edilmə ilinə görə veriliş sayını vizuallaşdırın. Şərh verin.

newtab=ntf[,list(verlis_sayi=n_distinct(show_id)),by=list(date_added_year=year(date_added))]
ggb=ggplot(newtab,aes(x=factor(date_added_year),y=verlis_sayi))+geom_col(fill="darkblue",color="darkblue")+labs(title = "Əlavə edilmə ilinə görə veriliş sayı",x="Əlavə edilmə ili")+theme_ft_rc()

ggplotly(ggb)

Qrafikə əsasən, verilişlərin sayı 2016-cı ildən etibarən artmış və 2019-cu ildə pik həddə (təxminən 2000+) çat edilmişdir. 2008–2015-ci illər arasında çox zəif aktivlik müşahidə olunur ki, bu da ilkin məlumatların toplanmaması, ya da platformanın genişlənməsi ilə izah oluna bilər. 2020-ci ildə azalma olsa da, hələ də yüksək səviyyəli qorunub, 2021-ci ildə əniş daha da davam edib. Bu əniş pandemiya, siyasət və ya texniki səbəblərlə bağlı ola bilər.

Tapsiriq 9

Veriliş müddətinin (duration_min ) növə görə dağılımını vizuallaşdırın.Şərh verin.

newgg=ggplot(ntf,aes(x=type,y=duration_min))+geom_boxplot()+labs(title = "Veriliş müddətinin növə görə dağılımı",x="Növ",y="Verlis muddeti")+theme_ft_rc()
ggplotly(newgg)

Qrafikdə göründüyü kimi, filmlərin (Movie) müddəti çox sıx aralıqda yerləşir və demək olar ki, sabitdir. Əksinə, TV şouların müddəti çox geniş intervalda dəyişir və 8000 dəqiqəyə qədər çıxan həddindən artıq (outlier) göstəricilər var. Bu, TV şouların mövsüm və seriyalardan ibarət olması ilə izah olunur. Anomaliya kimi, bəzi TV şouların qeyri-adi dərəcədə uzun müddətə malik olması xüsusi diqqət çəkir. Boşluq isə filmlərlə müqayisədə çox az dəyişkənlikdədir, yəni onların daha standart formatda hazırlandığı görünür. Bu, film və serial bazarının struktur fərqini açıq şəkildə göstərir.

Tapsiriq 10

Drama janrında (listed_in) olan verilişlərin Novruzun baxdığı həftə günləri üzrə show_age_days dağılımını vizuallaşdırın. Şərh verin.

tabjoin2=left_join(ntf, ntf_n, by = "show_id")
tab10=tabjoin2[listed_in %like% "Dramas"]

ggg=ggplot(tab10,aes(x=wday_watched,y=show_age_days))+geom_col(fill="purple",color="purple")+labs(title = "Drama janrında olan verilişlərin həftə günləri üzrə show_age_days dağılımı",x="Həftə günləri")

ggplotly(ggg)

Qrafik göstərir ki, drama janrında olan verilişlərin show_age_days göstəricisi həftə günlərinə görə ümumilikdə balanslı paylanıb. Ən yüksək göstərici Çərşənbə günü (Wed) və Bazar günü (Sun)-dədir, bu da həmin günlərdə dramaların daha çox izlənildiyini və ya uzun müddətdir mövcud olduğunu göstərə bilər. Ən aşağı göstərici isə Çərşənbə axşamı (Tue)-də müşahidə olunur. Ümumiyyətlə, günlər arasında ciddi fərq yoxdur, ancaq kiçik dalğalanmalar bazar günü və həftə ortasında marağın daha güclü olduğunu göstərir. Anomaliya olaraq, Çərşənbə axşamındakı nisbətən zəif göstərici diqqət çəkir. Bu boşluq izləmə davranışının günlər üzrə fərqlənməsini əks etdirə bilər.