Manis sniegto atbilžu lapā https://stackoverflow.com analīze

Jau gandrīz četrus gadus esmu reģistrējies jautājumu/atbilžu portālā https://stackoverflow.com un uz šo brīdi esmu sniedzis 699 atbildes uz jautājumiem par R programmu un uzdevis tikai vienu jautājumu.

Tagad visi jautājumi un atbildes par programmu R no StackOverflow pieejami lapā https://www.kaggle.com/stackoverflow/rquestions kā csv faili, kas ļauj tos katram analizēt pēc savām vajadzībām. Protams, ka uzzinot par šādu iespēju, radās vēlme papētīt manis sniegtās atbildes.

Dati

Jautājumu un atbilžu dati ir pieejami trīs failos, attiecīgi par jautājumiem, par atbildēm, par tagiem (birkām) (izņemot R tagu, kas ir kopīgs visiem jautājumiem).

Datus lejupielādējam no https://www.kaggle.com/stackoverflow/rquestions mājaslapas un tad importējam programmā R.

library(readr)
library(dplyr)
atbildes <- read_csv("rquestions/Answers.csv",progress = FALSE)
tags <- read_csv("rquestions/Tags.csv",progress = FALSE)

Tagad no atbilžu objekta atlasām tās atbildes, kuras esmu sniedzis es (to nosaka pēc kolonnas OwnerUserId). Rezultātā paliek pārī 684 rindiņas, kas ir mazāk nekā manis sniegtais atbilžu daudzums (iespējams, ka kādai atbildei nav pievienots R tags).

atbildes_manas <- atbildes %>% filter(OwnerUserId=="1857266")

Lai atlasītu manu atbilžu tagus, tiek apvienota kopā daļa no atbildes_manas tabulas ar tags tabulu, balstoties uz jautājumu Id numuru.

tags_mani <-atbildes_manas %>% select(ParentId,CreationDate) %>%
      left_join(.,tags,by=c("ParentId"="Id"))

Atbildes

Savu sniegto atbilžu izmaiņu analīzei datu tabulai pievieno jaunas kolonnas, kas parāda gadu, mēnesi un nedēļas dienu, kurā sniegta atbide

library(lubridate)
atbildes_manas <- atbildes_manas %>%
      mutate(Gads = year(CreationDate),
             Mēnesis = month(CreationDate),
             Nedēļa = wday(CreationDate))

Tagad varam skatīties, kā mainījies sniegto atbilžu daudzums pa gadiem. Skaidri redzams, ka aktīvākais gads man ir bijis 2013., pēc kā sekojis straujš aktivitātes kritums.

library(ggplot2)
library(cowplot)
atbildes_manas %>%
      group_by(Gads) %>%
      summarise(Skaits=n()) %>%
      ggplot(.,aes(Gads,Skaits))+geom_bar(stat="identity")

Šo tendeci var arī redzēt skatot kā kumulatīvi ir mainījies manis sniegto atbilžu skaits.

atbildes_manas %>%
      arrange(CreationDate) %>%
      mutate(Skaits=seq_along(CreationDate)) %>%
      ggplot(.,aes(CreationDate,Skaits))+geom_step()

center

Ja skatāmies uz mēnešu sadalījumu, tad aktīvākie mēneši bijuši marts un aprīlis, bet vismazāk atbildes sniegtas septembrī. Zemā aktivitāte septembrī, laikam, skaidrojama ar to, ka tad parasti universitātē ir daudz darba sākoties jaunajam a.g. un neatliek laika palīdzēt citiem.

atbildes_manas %>%
      group_by(Mēnesis) %>%
      summarise(Skaits=n()) %>%
      ggplot(.,aes(as.factor(Mēnesis),Skaits))+geom_bar(stat="identity")+
      labs(x="Mēnesis")

center

Vismazāk atbildes sniegtas svētdienās, kad arī jautājumi parasti ir daudz mazāk nekā citās dienās.

atbildes_manas %>%
      group_by(Nedēļa) %>%
      summarise(Skaits=n()) %>%
      ggplot(.,aes(as.factor(Nedēļa),Skaits))+geom_bar(stat="identity")+
      labs(x="Nedēļas diena")

center

Sniegtās atbildes uz jautājumiem citi lietotāji novērtē balsojot ar pozitīvi vai negatīvu vērtējumu. Šobrīd nav nevien atbilde, kuras kopējais vērtējums būtu negatīvs, bet ir 38 atbildes, kuras vērtējums ir 0 jeb neviens to nav novērtējis. Tikai divām atbildēm (0.3%) vērtējums ir virs 100 punktiem, bet visvairāk atbilžu (69.4%) ir ar vērtējumu no 2 līdz 10.

atbildes_manas %>% 
      mutate(Vertejums = cut(Score,breaks=c(-10,-1,0,1,10,25,50,100,1000))) %>%
      select(Score,Vertejums) %>%
      group_by(Vertejums) %>%
      summarise(Skaits=n()) %>%
      mutate(Procenti=round(Skaits/sum(Skaits)*100,1))
## # A tibble: 7 × 3
##     Vertejums Skaits Procenti
##        <fctr>  <int>    <dbl>
## 1      (-1,0]     38      5.6
## 2       (0,1]    104     15.2
## 3      (1,10]    475     69.4
## 4     (10,25]     52      7.6
## 5     (25,50]     10      1.5
## 6    (50,100]      3      0.4
## 7 (100,1e+03]      2      0.3

Tagi

Kā jau vairāk kārt esmu rakstījis, tad mana mīļākā tēma, par kuru sniegt atbildes, ir ggplot2 attēli. To ļoti labi var redzēt pēc 10 populārākajiem tagiem, kur dominē ggplot2 un ir vēl septiņi tagi, kas saistāmi ar attēliem.

tags_mani %>% group_by(Tag) %>%
      filter(!is.na(Tag)) %>%
      summarise(Skaits=n()) %>%
      arrange(desc(Skaits)) %>%
      top_n(10) %>%
      ggplot(.,aes(reorder(Tag,Skaits),Skaits))+geom_bar(stat="identity")+
      coord_flip()+labs(x="Tagi")

center

Didzis Elferts
Didzis Elferts
Datu zinātnieks, vadošais pētnieks

Manas zinātniskās intereses saistītas ar statistiku un programmu R.