рдпреВрд░реЛрд╡рд┐рдЬрд╝рди 2020 рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ YouTube рд╡реАрдбрд┐рдпреЛ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

13 рдорд╛рд░реНрдЪ рдХреЛ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдпреВрд░реЛрд╡рд┐рдЬрд╝рди рдпреВрдЯреНрдпреВрдм рдЪреИрдирд▓ рдкрд░, рд▓рд┐рдЯрд┐рд▓ рдмрд┐рдЧ рд╕рдореВрд╣ рдХреА рд░рдЪрдирд╛ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рдереА, рдЬреЛ рдкреНрд░рддрд┐рдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рд░реВрд╕ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░реЗрдЧреАред рдХреНрд▓рд┐рдк рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрдиреНрдп рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рд╕рдореВрд╣ рдХреЗ рд╡реАрдбрд┐рдпреЛ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛; рдХреМрди рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рд╢рдд рд╣реИрдВ, рдЬрд┐рди рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЬрд╛рддреА рд╣реИред рддреИрдпрд╛рд░ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рдЧреБрдБрдердиреЗ рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ рд╣реБрдЖред рдЗрд╕рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред


рд▓реЗрдЦ рд╕рдВрд░рдЪрдирд╛:



рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдЦреЛрд▓рддреЗ рд╣реБрдП , рдЖрдк 39 рд╡реАрдбрд┐рдпреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 38 рдЧрд╛рдиреЗ рд╣реИрдВ, рд╕рдВрд░рдЪрдирд╛ рддреВрдлрд╛рди - рд╣рд╕реНрддрд╛ рд▓рд╛ рд╡рд┐рд╕реНрдЯрд╛ - рд╕рд░реНрдмрд┐рдпрд╛ рдХреЛ рджреЛ рдмрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рдкрд░ рдЖрдВрдХрдбрд╝реЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЖрдВрдХрдбрд╝реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


рдХреЛрдб рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ


рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрдХреЗрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:


library(tuber) #    API YouTube,     
library(dplyr) #     
library(ggplot2) #  

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Google рдбреЗрд╡рд▓рдкрд░ рдХрдВрд╕реЛрд▓ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ YouTube рдбреЗрдЯрд╛ API v3 рдПрдкреАрдЖрдИ рдкрд░ рдПрдХ OAuth рдХреБрдВрдЬреА рдмрдирд╛рдПрдВред рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрд░ рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВред


yt_oauth(" ", "  ")

рдЕрдм рд╣рдо рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


#     
list_videos <- get_playlist_items(filter = c(playlist_id = "PLmWYEDTNOGUL69D2wj9m2onBKV2s3uT5Y"))

#    ,  get_stats
stats_videos <- lapply(as.character(list_videos$contentDetails.videoId), get_stats) %>% 
  bind_rows()
stats_videos <- stats_videos %>% 
  mutate_at(vars(-id), as.integer)

#   ,  get_video_details
description_videos <- lapply(as.character(list_videos$contentDetails.videoId), get_video_details)
description_videos <- lapply(description_videos, function(x) {
    list(
      id = x[["items"]][[1]][["id"]],
      name_video = x[["items"]][[1]][["snippet"]][["title"]]
    )
  }) %>% 
  bind_rows()

.. тАФ тАФ [ ] тАФ Official Music Video тАФ Eurovision 2020, , . .


#     
description_videos$name_video <- description_videos$name_video %>% 
  gsub("[^[:alnum:][:blank:]?&/\\-]", '', .) %>% 
  gsub("(  .*)|( - Offic.*)", '', .)

#      
df <- description_videos %>% 
  left_join(stats_videos, by = 'id') %>% 
  rowwise() %>% 
  mutate( #   
    proc_like = round(likeCount / (likeCount + dislikeCount), 2)
    ) %>% 
  ungroup()

# Hurricane - Hasta La Vista - Serbia     ,  
df <- df %>% 
  group_by(name_video) %>% 
  summarise(
    id = first(id),
    viewCount = sum(viewCount),
    likeCount = sum(likeCount),
    dislikeCount = sum(dislikeCount),
    commentCount = sum(commentCount),
    proc_like = round(likeCount / (likeCount + dislikeCount), 2)
  )

df$color <- ifelse(df$name_video == 'Little Big - Uno - Russia','red','gray')


. .


# - 
ggplot(df, aes(x = reorder(name_video, viewCount), y = viewCount, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "- ") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::number_format(big.mark = " "))

#    
ggplot(df, aes(x = reorder(name_video, proc_like), y = proc_like, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "   ") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

# - 
ggplot(df, aes(x = reorder(name_video, commentCount), y = commentCount, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "- ") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::number_format(big.mark = " "))

#    
ggplot(df, aes(x = reorder(name_video, commentCount/viewCount), y = commentCount/viewCount, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "   ") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 0.25))

, Little Big 1 , .


. Little Big , . - .


рдЫрд╡рд┐


, . . .


рдЫрд╡рд┐


.


рдЫрд╡рд┐


( / ). . .


рдЫрд╡рд┐


13.03.2020 18:00 , , , .


UPD: 14.03.2020 20:30


. . Little Big , .


рдЫрд╡рд┐


, . Little Big ,


рдЫрд╡рд┐


.


рдЫрд╡рд┐


( / ). 2 , , , . .


рдЫрд╡рд┐


14.03.2020 20:30 , , , , . .


:


helg1978 . .



library(rvest)
library(tidyr)

#   
hdoc <- read_html('https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population')

tnode <- html_node(hdoc, xpath = '/html/body/div[3]/div[3]/div[4]/div/table')
df_population <- html_table(tnode)

df_population <- df_population %>% filter(`Country (or dependent territory)` != 'World')

df_population$Population <- as.integer(gsub(',','',df_population$Population,fixed = T))

df_population$`Country (or dependent territory)` <- gsub('\\[.*\\]','', df_population$`Country (or dependent territory)`)

df_population <- df_population %>% 
  select(
    `Country (or dependent territory)`,
    Population
    ) %>% 
  rename(Country = `Country (or dependent territory)`)

#       
df2 <- df %>% 
  separate(name_video, c('compozitor', 'name_track', 'Country'), ' - ', remove = F) %>% 
  mutate(Country = ifelse(Country == 'The Netherlands', 'Netherlands', Country)) %>% 
  left_join(df_population, by = 'Country')

#     
cor(df2$viewCount,df2$Population)
ggplot(df2, aes(x = Population, y =  viewCount)) +
  geom_point() +
  theme_light() +
  geom_smooth(method = 'lm') +
  labs(x = ", ", y = "- ") +
  scale_y_continuous(labels = scales::number_format(big.mark = " ")) +
  scale_x_continuous(labels = scales::number_format(big.mark = " "))

#     ,  
cor(df2[df2$Country != 'Russia',]$viewCount,df2[df2$Country != 'Russia',]$Population)
ggplot(df2 %>% filter(Country != 'Russia') , aes(x = Population, y = viewCount)) +
  geom_point() +
  theme_light() +
  geom_smooth(method = 'lm') +
  labs(x = ", ", y = "- ") +
  scale_y_continuous(labels = scales::number_format(big.mark = " ")) +
  scale_x_continuous(labels = scales::number_format(big.mark = " "))

#     , 
cor(df2$viewCount,df2$Population, method = "spearman")
ggplot(df2 , aes(x = rank(Population), y = rank(viewCount))) +
  geom_point() +
  theme_light() +
  geom_smooth(method = 'lm') +
  labs(x = ",  (  1  40)", y = "-  (  1  40)") +
  guides(fill = F)

#     
ggplot(df2, aes(x = reorder(name_video, viewCount/Population), y = viewCount/Population, fill = color)) +
  geom_col() +
  coord_flip() +
  theme_light() +
  labs(x = NULL, y = "    ") +
  guides(fill = F) +
  scale_fill_manual(values = c('gray', 'red')) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 0.25))

, , 50 . 71%.
рдЫрд╡рд┐


. 71% 15%. .
рдЫрд╡рд┐


( ), , (. . 40%).
рдЫрд╡рд┐


рдФрд░ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рджреЗрд╢ рдХреА рдЖрдмрд╛рджреА рд╕реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдХреА рдЧрдгрдирд╛ рдХреАред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЫреЛрдЯреЗ рджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдиреНрдп рджреЗрд╢реЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рджреЗрдЦрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдорд╛рд▓реНрдЯрд╛, рд╕реИрди рдореИрд░рд┐рдиреЛ рдФрд░ рдЖрдЗрд╕рд▓реИрдВрдб рд╣реИред
рдЫрд╡рд┐


рдкреВрд░реНрдг рдЬреАрдереБрдм рдХреЛрдб


All Articles