Toto je rychlá zpráva pro Denisu Keru, aby viděla, co je v datech z našeho dotazníku, který jsme distribuovali mým studentům přes Click4Survey. Tato zpráva ukazuje, jak jsem natáhnul data do R, jak je upravil a pak ukazuje rychlé výsledky.

Příprava

Na samém začátku udělám úplně standardní věci:

  • vymažu obsah paměti
  • uložím si do objektu wd cestu k pracovnímu adresáři
  • načtu potřebné package
## FrK 2020-06-23 Vytvořil
## FrK 2022-02-02 Upravil

# Hlavička
rm(list = ls())
wd = getwd()

# Načtení packagí
library(readxl)
library(dplyr)
library(ggplot2)
library(tidyr)
library(forcats)

Natažení dat

Data si musím ručně stáhnout do pracovního adresáře. To za mne kód nevyřeší - vím samozřejmě, že jde stahovat data z netu, ale na C4S nemáme takovou licenci, aby mi to dovolilo data z C4S stáhnout.

# Načtení dat
df = read_xlsx("eRouska_20200627064430_hodnoty.xlsx")
df2 = read_xlsx("20210504094957-eRouska_2021-04-28_text.xlsx") %>% select(c(1:10, 31:47))


Protože C4S udělá hrozné názvy proměnných - vezme celý text otázky a udělá z něj název - je třeba to přejmenovat. Nejprve jsem zvolil sadu abreviací, která byla zřejmá ze samotného kódu. Ale pak se ukázalo, že je praktičtější, když názvy nesou nějakou, sice hodně stručnou, ale stále plnohodnotnou, charakteristiku proměnné, tedy: Podpora Ministerstva, Anonymizovaná data, Open source řešení, Automatické mazání dat, Data jsou jen v mobilu, Pravidelný dohled. Ale zbytek jsem vyřešil již dříve zmíněnými abreviacemi zřejmými z kódu.

# Přejmenování proměnných
names(df2) = c('idO', 'idR', 'dis', 'startD', 'startT', 'endD', 'endT', 'status', 'kvota', 'cas',
              'inst', 'zmena', 'obavy',
              'Ministry support', 'Data anonymized', 'Open source', 
              'Automatic deletion', 'Data on device', 'Independent oversight',
              'dulMin2', 'dulAnon2', 'dulOpen2', 'dulSmaz2', 'dulMob2', 'dulDohl2', 'dohled', 'vek')
glimpse(df2[, 11:26])
## Rows: 24
## Columns: 16
## $ inst                    <chr> "Ne", "Ne", "Ano, nainstaloval/a", "Ne", "Ano,~
## $ zmena                   <chr> "V podstatě nic. Spíše to vnímám jako svůj oso~
## $ obavy                   <chr> NA, NA, NA, NA, NA, NA, NA, "Ne", NA, "Ukraden~
## $ `Ministry support`      <dbl> NA, NA, NA, NA, NA, NA, NA, 1, 7, NA, 9, NA, 3~
## $ `Data anonymized`       <dbl> NA, NA, NA, NA, NA, NA, NA, 10, 10, NA, 3, NA,~
## $ `Open source`           <dbl> NA, NA, NA, NA, NA, NA, NA, 10, 5, NA, 6, NA, ~
## $ `Automatic deletion`    <dbl> NA, NA, NA, NA, NA, NA, NA, 1, 6, NA, 4, NA, 6~
## $ `Data on device`        <dbl> NA, NA, NA, NA, NA, NA, NA, 10, 10, NA, 4, NA,~
## $ `Independent oversight` <dbl> NA, NA, NA, NA, NA, NA, NA, 1, 1, NA, 8, NA, 5~
## $ dulMin2                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, 8, NA, 6, ~
## $ dulAnon2                <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, 9, NA, 7, ~
## $ dulOpen2                <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, 6, NA, 6, ~
## $ dulSmaz2                <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, 7, NA, 8, ~
## $ dulMob2                 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, 9, NA, 7, ~
## $ dulDohl2                <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, 9, NA, 7, ~
## $ dohled                  <chr> NA, NA, NA, NA, NA, NA, NA, "Tak jak je to v s~
# Přejmenování proměnných
names(df) = c('idO', 'idR', 'dis', 'startD', 'startT', 'endD', 'endT', 'status', 'kvota', 'cas',
              'inst', 'obavy',
              'Ministry support', 'Data anonymized', 'Open source', 
              'Automatic deletion', 'Data on device', 'Independent oversight',
              'dulMin2', 'dulAnon2', 'dulOpen2', 'dulSmaz2', 'dulMob2', 'dulDohl2', 'dohled', 'vek')
## Warning: The `value` argument of `names<-` must have the same length as `x` as of tibble 3.0.0.
## `names` must have length 25, not 26.
glimpse(df[, 11:25])
## Rows: 35
## Columns: 15
## $ inst                    <dbl> 5, 5, 5, 5, 2, 5, 1, 5, 2, 5, 5, 5, 5, 5, 2, 5~
## $ obavy                   <chr> "Žádné.", "Zneužití osobních dat, nepřesnost v~
## $ `Ministry support`      <dbl> NA, NA, NA, NA, 1, NA, 3, NA, 8, NA, NA, NA, N~
## $ `Data anonymized`       <dbl> NA, NA, NA, NA, 4, NA, 7, NA, 9, NA, NA, NA, N~
## $ `Open source`           <dbl> NA, NA, NA, NA, 6, NA, 8, NA, 7, NA, NA, NA, N~
## $ `Automatic deletion`    <dbl> NA, NA, NA, NA, 6, NA, 7, NA, 8, NA, NA, NA, N~
## $ `Data on device`        <dbl> NA, NA, NA, NA, 10, NA, 8, NA, 10, NA, NA, NA,~
## $ `Independent oversight` <dbl> NA, NA, NA, NA, 8, NA, 5, NA, 9, NA, NA, NA, N~
## $ dulMin2                 <dbl> 1, 1, 7, 3, NA, 9, NA, 6, NA, 1, 10, 5, 7, 4, ~
## $ dulAnon2                <dbl> 1, 1, 4, 10, NA, 10, NA, 4, NA, 7, 6, 7, 9, 8,~
## $ dulOpen2                <dbl> 3, 1, 5, 5, NA, 1, NA, 2, NA, 10, 6, 9, 7, 5, ~
## $ dulSmaz2                <dbl> 1, 1, 3, 8, NA, 8, NA, 4, NA, 1, 7, 1, 9, 3, N~
## $ dulMob2                 <dbl> 1, 1, 10, 10, NA, 1, NA, 4, NA, 6, 10, 6, 9, 8~
## $ dulDohl2                <dbl> 10, 2, 7, 8, NA, 10, NA, 10, NA, 5, 10, 4, 9, ~
## $ dohled                  <chr> "Nevím.", "Tak, jak to je aktuálně", "Nedokážu~

Úprava dat

Aby data dobře fungovala a k něčemu byla, je potřeba udělat několik věcí:

  1. v dotazníku je baterie na důležitost jednotlivých opatření dvakrát - jedno znění otázky je pro ty, co se rozholi, že si eRoušku (někdy) nainstalují, druhé pro ty, co se rozhodli, že si ji nenainstalují - je potřeba vše ‘sesypat’, tj. platné odpovědi z druhé baterie zkopírovat místo neplatných hodnot v první, a pak nepotřebnou baterii odmazat
  2. pak je potřeba opravit kódování proměnné df$inst z 1, 2, 5 na 1, 2, 3 a opatřit tyto kategorie vypovídajícími popisky

Nejprve se tedy pustíme do ‘sesypání’. Provedu to for cyklem, není to možná dobrá praxe, ale mně se nějak blbě dělá v R s názvy proměnných, pořadové číslo proměnné je mi nějak milejší, nevím proč, a proto v kódu používám čísla sloupečků/ pořadí proměnných i a i + 6. Podobně, je asi elegantnější způsob, jak se zbavit druhé baterie, ale já to opět řeším přes pořadová čísla proměnných/ sloupečků c(1:18, 25).

# Sesypání proměnných ze dvou baterií do jedné
for (i in 14:19) {
  df2[is.na(df2[,i]), i] = df2[is.na(df2[,i]), (i + 6)]
}

# Teď už nepotřebujeme druhou baterii, tak jí odmažeme
df2 = df2[, c(1:19, 26)] %>% filter(status == "dokončená")


# Sesypání proměnných ze dvou baterií do jedné
for (i in 13:18) {
  df[is.na(df[,i]), i] = df[is.na(df[,i]), (i + 6)]
}

# Teď už nepotřebujeme druhou baterii, tak jí odmažeme
df = df[, c(1:18, 25)] %>% filter(status == "dokončená")


Zbývá poslední věc, a to labelování (opatření popisky kategorií) a logické přečíslování kategorií proměnné df$inst. Jasně, nejdřív to přečíslujeme a potom labelujeme. Opět není překvapivé, že místo názvu zase používám číslo proměnné/ sloupečku.

# Nejdřív proměnnou logicky přečísluju na 1, 2, 3df[df[, 11] == 5, 11] = 3

# Samotné 'labelování'
df2$inst
##  [1] "Ano, nainstaloval/a" "Ano, nainstaloval/a" "Ne"                 
##  [4] "Ano, nainstaloval/a" "Ne"                  "Ano, nainstaloval/a"
##  [7] "Ne"                  "Ne"                  "Ne"                 
## [10] "Ano, nainstaloval/a" "Ano, nainstaloval/a" "Ano, nainstaloval/a"
## [13] "Ano, nainstaloval/a" "Ne"                  "Ne"                 
## [16] "Ano, nainstaloval/a" "Ne"
df2 = df2 %>% mutate(inst = factor(inst, labels = c('Yes', 'No')))
df2$inst
##  [1] Yes Yes No  Yes No  Yes No  No  No  Yes Yes Yes Yes No  No  Yes No 
## Levels: Yes No
# Samotné 'labelování'
df$inst
##  [1] 5 5 5 5 2 5 1 5 2 5 5 5 5 5 2 5 2 1 5 2 2 5 5 2 5 5 5 2 5 5 5 5 5 2 5
df = df %>% filter(status == "dokončená") %>%
  mutate(inst = factor(inst, labels = c('Yes', 'Yes', 'No')))
df$inst
##  [1] No  No  No  No  Yes No  Yes No  Yes No  No  No  No  No  Yes No  Yes Yes No 
## [20] Yes Yes No  No  Yes No  No  No  Yes No  No  No  No  No  Yes No 
## Levels: Yes No

Přehled proměnných

Protože bude asi Denisu nejvíc ze všeho zajímat, co moji studenti psali do otevřených odpovědí, začnu jejich výpisem. Potom ukážu, kolik lidí si eRoušku nainstalovalo a nakonec dám přehled důležitosti jednotlivých faktorů dohledu.

Obavy

Nejprve obavy (vynechal jsem prázdné odpovědi):

# Výpis obav 2020/06
df[!is.na(df$obavy),]$obavy
##  [1] "Žádné."                                                                                                                                                                                                                  
##  [2] "Zneužití osobních dat, nepřesnost vzhledem k malému počtu uživatel"                                                                                                                                                      
##  [3] "Žádné obavy nemám, přijde mi to jako skvělý nápad, pouze jsem neměl potřebu aplikaci využít."                                                                                                                            
##  [4] "Příliš konkrétní poskytování informací druhé straně (např. GPS poloha)"                                                                                                                                                  
##  [5] "Únik dat"                                                                                                                                                                                                                
##  [6] "Po skončení pandemie by mohl někdo získaná data zneužít."                                                                                                                                                                
##  [7] "Ano. Aplikace je sice údajně bezpečná a fungující na decentralizované úrovni. Do té doby, dokud ale nebude open source a já nebudu zdatný programátor rozumnějící kódu, nemohou si být jist tím, že neobsahuje backdoor."
##  [8] "Snad jen potencionální únik dat a tvoření podobných aplikací, jež jsou vytvářeny za účelem zneužití dat apod."                                                                                                           
##  [9] "Asi žádné obavy nemám"                                                                                                                                                                                                   
## [10] "Ano, aplikace nepracuje transparentně s daty a neexistuje kontrola smazání dat."                                                                                                                                         
## [11] "Ze šíření osobních údajů"                                                                                                                                                                                                
## [12] "Nemám, pouze o ni nemam zájem"                                                                                                                                                                                           
## [13] "Únik dat"                                                                                                                                                                                                                
## [14] "Nepoužívám, ale obavy s fungováním určitě  nemám."                                                                                                                                                                       
## [15] "Že to nebude dostačující"                                                                                                                                                                                                
## [16] "Ano, o své soukromí"                                                                                                                                                                                                     
## [17] "Ne"                                                                                                                                                                                                                      
## [18] "Jen doufám, že ty informace nikdo nezneužije+"                                                                                                                                                                           
## [19] "Doufám, že to nikdo nezneužije"                                                                                                                                                                                          
## [20] "Obavy z příliš velké kontroly ( sledování podle GPS polohy)"                                                                                                                                                             
## [21] "nízký počet uživatel -> bezúčelnost, pořeba aktivního bluetooth"                                                                                                                                                         
## [22] "Nemám"                                                                                                                                                                                                                   
## [23] "Nemám."                                                                                                                                                                                                                  
## [24] "Že budou údaje o poloze po skončení epidemie zneužity."                                                                                                                                                                  
## [25] "Žádné obavy nemám"                                                                                                                                                                                                       
## [26] "Ani ne."                                                                                                                                                                                                                 
## [27] "Ne"                                                                                                                                                                                                                      
## [28] "Ne"                                                                                                                                                                                                                      
## [29] "Nemám  obavy z jejího užívání, jen můj aktuální telefon mi její užívání neumožňuje."                                                                                                                                     
## [30] "Obavy nemám, jen jsem neměl potřebu aplikaci instalovat"                                                                                                                                                                 
## [31] "Lze skrze podobné aplikace sledovat polohu a získat tak, pro některé, velmi důvěrné informace. Proto je zásadní, aby bylo správné vedení a nic z toho se nemohlo stát."                                                  
## [32] "Nemám"
# Výpis obav 2021/04
df2[!is.na(df2$obavy),]$obavy
##  [1] "Ne"                                                                                                           
##  [2] "Ukradení osobních dat"                                                                                        
##  [3] "je to trochu přehnaný zásah do soukromí, kdyby se do systému někdo naboural, šlo by toho špatně využít, a tak"
##  [4] "Osobně žádné obavy nepociťuji."                                                                               
##  [5] "Žádné velké obavy nemám.+"                                                                                    
##  [6] "Ne, nemyslím si, že by někoho zajímala má poloha. Stejně většinu času teď trávím na gauči doma <U+0001F914><U+0001F603>"
##  [7] "Vůbec"                                                                                                        
##  [8] "ne"                                                                                                           
##  [9] "Ne"                                                                                                           
## [10] "Přílišné sledování a trasování mé osoby - mého pohybu a aktivit."                                             
## [11] "Nepřijde mi dost odůvodněná a nevidím, jak by mohla něčemu opravdu pomoct."                                   
## [12] "Ne"                                                                                                           
## [13] "Nechci, aby byl nijak monitorován můj pohyb"

Dohled

Nyní, jak by si představovali ideální dohled (opět jsem vynechal prázdné odpovědi):

# Výpis ideálních způsobů dohledu 2020/06
df[!is.na(df$dohled),]$dohled
##  [1] "Nevím."                                                                                                                                                                                                                                                                                                                                                                                                                                
##  [2] "Tak, jak to je aktuálně"                                                                                                                                                                                                                                                                                                                                                                                                               
##  [3] "Nedokážu říci."                                                                                                                                                                                                                                                                                                                                                                                                                        
##  [4] "-"                                                                                                                                                                                                                                                                                                                                                                                                                                     
##  [5] "Aby se o něj staralo co nejméně lidí, samozřejmě profesionálů, kteří ví co dělají."                                                                                                                                                                                                                                                                                                                                                    
##  [6] "Nezávislá agentura vybraná ve výběrovém řízení namátkově kontroluje, zda nejsou data uživatelů zneužívána"                                                                                                                                                                                                                                                                                                                             
##  [7] "Systém zpětných vazeb od širokého množství nezávislých IT odborníků (popřípadě organizací) i veřejnosti."                                                                                                                                                                                                                                                                                                                              
##  [8] "Moc do toho nevidím, asi nějaký kvalitní “bezpečnostní systém”, taktéž vývojáři, jež nezneužijí dat"                                                                                                                                                                                                                                                                                                                                   
##  [9] "Nevím"                                                                                                                                                                                                                                                                                                                                                                                                                                 
## [10] "Open source, anonymizace, data jen v uživatelském zařízení."                                                                                                                                                                                                                                                                                                                                                                           
## [11] "Co nejméně lidí, kteří ví co dělají."                                                                                                                                                                                                                                                                                                                                                                                                  
## [12] "Ideální dohled podle mého názoru neexistuje"                                                                                                                                                                                                                                                                                                                                                                                           
## [13] "Nezávislý dohled někoho, kdo není ovlivněný"                                                                                                                                                                                                                                                                                                                                                                                           
## [14] "Netuším, prostě ať ty lidi mají soudnost a nezkouší ty informace nijak zneužívat"                                                                                                                                                                                                                                                                                                                                                      
## [15] "Netuším, prostě doufám, že lidi budou mít soudnost a nijak ty data nezneužijí"                                                                                                                                                                                                                                                                                                                                                         
## [16] "-"                                                                                                                                                                                                                                                                                                                                                                                                                                     
## [17] "aktuální se mi zdá být dostačující"                                                                                                                                                                                                                                                                                                                                                                                                    
## [18] "Dle mého je dokonalý dohled nemožný. To ho vlastně dělá ideální, že ano? +Pokud bychom tedy mluvili o ideálním, ne reálném dohledu, jako nejvíce vyhovující by byla skupina nezaujatých jedinců, kteří by mohli nahlížet do osobních dat uživatelů této aplikace, popřípadě tak tuto aplikaci kontrolovali. Otázka je v morálním principu tohoto řešení. Jak jsem ale již zmínila, bavíme se v teoretickém, nikoli praktickém měřítku."
## [19] "Ve výběrovém řízení se vybere nezávislá společnost, která bude dohlížet na to, aby data nebyla zneužívána."                                                                                                                                                                                                                                                                                                                            
## [20] "Nevím"                                                                                                                                                                                                                                                                                                                                                                                                                                 
## [21] "Žádný. Nechme rozhodnout samotné uživatele, jestli si tuto aplikaci nainstalují."                                                                                                                                                                                                                                                                                                                                                      
## [22] "Žádný, nechť si každý rozhodne, jestli si aplikaci nainstaluje."                                                                                                                                                                                                                                                                                                                                                                       
## [23] "Nijak jinak nez je doposud"                                                                                                                                                                                                                                                                                                                                                                                                            
## [24] "Tak jak bylo popsáno výše. Pravidelný dohled nad fungováním systému,transparentní metodologie, která sleduje zabezpečení dat. V ideálním světě by aplikace mohla být velmi účinná, kdyby všichni občané měli možnost jejího užití a všichni by jí správně užívali."                                                                                                                                                                    
## [25] "Nemám tušení."                                                                                                                                                                                                                                                                                                                                                                                                                         
## [26] "Do určité míry dohled samotných uživatelů nad fungováním. Vedením musí být pověřen někdo neutrální."
# Výpis ideálních způsobů dohledu 2021/04
df2[!is.na(df2$dohled),]$dohled
## [1] "Tak jak je to v současné době. Další dohled není třeba. Žel kolem toho kolují neopodstatněné mýty."                                                                                                                                  
## [2] "Nevím"                                                                                                                                                                                                                               
## [3] "Celá ta aplikace mi přijde zvláštní, takže ideál u ní asi nemám"                                                                                                                                                                     
## [4] "Upřímně nevím jaký je současný dohled nad aplikací, takže si v tomto ohledu nedovolím soudit."                                                                                                                                       
## [5] "Nevím, je mi to jedno."                                                                                                                                                                                                              
## [6] "Těžká otázka, protože těžko říct, že lze mít největší důvěru, že data nebudou zneužita. I když já sám si neumím úplně představit, jak by měla být zneužitelná např. státem. Takže proč ne v nějaké části ministerstva zdravotnictví."
## [7] "Jsem spokojená s tím tak, jak to je nastavené."                                                                                                                                                                                      
## [8] "Nevím."                                                                                                                                                                                                                              
## [9] "Tak jak je to nastaveno v současnosti."

Důležitost

A jako poslední výpis uděláme důležitost jednotlivých způsobů dohledu nad aplikací. Studenti je bodovali na škále 1–10, kde 1 znamenalo ‘absolutně nedůležité’ a 10 ‘maximálně důležité’. Následující výpis udává průměry, mediány, minima, maxima a hranice horního a dolního kvartilu - je to takový boxplot v číslech :)

# Průměrná důležitost 2020/06
summary(df[, 13:18])
##  Ministry support Data anonymized   Open source     Automatic deletion
##  Min.   : 1.000   Min.   : 1.000   Min.   : 1.000   Min.   : 1.000    
##  1st Qu.: 1.500   1st Qu.: 4.000   1st Qu.: 3.500   1st Qu.: 2.500    
##  Median : 3.000   Median : 7.000   Median : 5.000   Median : 6.000    
##  Mean   : 4.514   Mean   : 6.229   Mean   : 5.286   Mean   : 5.229    
##  3rd Qu.: 7.500   3rd Qu.: 9.000   3rd Qu.: 7.500   3rd Qu.: 8.000    
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :10.000    
##  Data on device   Independent oversight
##  Min.   : 1.000   Min.   : 1.000       
##  1st Qu.: 3.000   1st Qu.: 5.000       
##  Median : 7.000   Median : 8.000       
##  Mean   : 6.029   Mean   : 7.057       
##  3rd Qu.: 9.500   3rd Qu.:10.000       
##  Max.   :10.000   Max.   :10.000
# Průměrná důležitost 2021/04
summary(df2[, 14:19])
##  Ministry support Data anonymized   Open source     Automatic deletion
##  Min.   : 1.000   Min.   : 3.000   Min.   : 1.000   Min.   :1.000     
##  1st Qu.: 1.000   1st Qu.: 7.000   1st Qu.: 5.000   1st Qu.:4.000     
##  Median : 6.000   Median : 9.000   Median : 6.000   Median :6.000     
##  Mean   : 5.294   Mean   : 7.941   Mean   : 5.706   Mean   :5.471     
##  3rd Qu.: 9.000   3rd Qu.:10.000   3rd Qu.: 6.000   3rd Qu.:7.000     
##  Max.   :10.000   Max.   :10.000   Max.   :10.000   Max.   :9.000     
##  Data on device   Independent oversight
##  Min.   : 1.000   Min.   :1.000        
##  1st Qu.: 7.000   1st Qu.:5.000        
##  Median : 8.000   Median :7.000        
##  Mean   : 7.471   Mean   :6.471        
##  3rd Qu.: 9.000   3rd Qu.:9.000        
##  Max.   :10.000   Max.   :9.000

Graf

A nakonec si tu uděláme grafický přehled důležitosti těch jednotlivých prvků dohledu. Aby to bylo přehlednější - když mají eRoušku jen 2 - sloučíme kategorie 1 a 2.

# Trochu nešikovné dočištění proměnné
df2$rozhodl = df2$inst
df2[df2$rozhodl == 'Plánuji',]$rozhodl = 'Ano'
df2$rozhodl = df2$rozhodl[, drop = TRUE]
df2$`Installed eRouška?` = df2$rozhodl
df2$Wave = "2021/04"
table(df2$`Nainstaluje si eRoušku?`)
## Warning: Unknown or uninitialised column: `Nainstaluje si eRoušku?`.
## < table of extent 0 >
# Trochu nešikovné dočištění proměnné
df$rozhodl = df$inst
df[df$rozhodl == 'Plánuji',]$rozhodl = 'Ano'
df$rozhodl = df$rozhodl[, drop = TRUE]
df$`Installed eRouška?` = df$rozhodl
df$Wave = "2020/06"
table(df$`Nainstaluje si eRoušku?`)
## Warning: Unknown or uninitialised column: `Nainstaluje si eRoušku?`.
## < table of extent 0 >


Tak a poslední fáze přípravy - reshape data.framu. Pořád mám tendenci dělat tu analýzu jako ve Statě, tj. nasázet tam třeba 6 proměnných. V eRku jsou ale potřeba tidy data, tzn. mít jeden sloupeček s hodnotami a druhý sloupeček s názvy proměnných. A tenhle formát - ve Statě to je long format - je potřeba vytvořit. Nyní jsou totiž data v tzv. wide format.

dfg = rbind(df[, c(13:18, 21, 22)], 
            df2[, c(14:19, 22, 23)]) %>%  # Nebudu tam dávat všechny data, ale jen proměnné potřebné pro graf
  pivot_longer(1:6, 
               names_to = "Regulation", 
               values_to = "Importance")


Boxplot s jitter points

A co tak udělat za graf? Pro začátek zkusme boxploty překryté scatterplotem.

dfg %>%
  ggplot(mapping = aes(fill = `Installed eRouška?`, 
                       col = `Installed eRouška?`,
                       y = `Importance`, 
                       x = Regulation)) +
  geom_boxplot(alpha = 0.15) + 
  geom_point(size = 2.5, alpha = 0.35, 
             position = position_jitterdodge(jitter.height = 0.25, 
                                             jitter.width = 0.5,)) +
  facet_grid(rows = vars(Wave)) +
  labs (
    title = "Differences in importance of selected regulations of eRouška",
    subtitle = paste0("by wave and decision to install e-rouska. (N=", nrow(df2) + nrow(df) ,")."),
    x = "",
    y = "Importance (1 - unimportant, 10 - max. important)",
    fill = "Decided to install e-rouska?", col = "Decided to install e-rouska?"
  ) +
  scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
  theme_classic() + 
  theme(
    legend.position = "bottom"
  )

ggsave("Image02.jpg", width = 8)
## Saving 8 x 5 in image

Dat sice není a už ani nebude moc (N1=35, N2=17). Ale i tak je na první pohled vidět velká diverzita lidí, co si eRoušku nenainstalovali - ve všech regulacích jsou víceméně rozprostření rovnoměrně od 1 do 10. Zatím co Ti, co se rozhodli eRoušku nainstalovat, ti - až na Podporu Ministerstva - jsou koncentrovanější a medián je 6–8 (ti co nenainstalovali mají mediány důležitosti jednotlivých regulací 3–9). Rozhodnutí instalovat tedy s vnímáním důležitosti regulací souvisí, teď je ještě otázka jak. Na to budeme muset přijít!

dfg %>% group_by(Regulation, Wave, `Installed eRouška?`) %>% summarise(Importance = mean(Importance, na.rm = T)) %>%  
  # ungroup() %>% 
  # pivot_wider(id_cols = c("Regulace", "Wave", "Nainstaluje si eRoušku?"), names_from = Wave) %>% 
  # mutate(Size = 1 + 2 * abs(`Pre (trust)` - `Post (priority)`)) %>% 
  # pivot_longer(cols = 3:4, names_to = "Phase") %>% 
  ggplot(mapping = aes(fill = Wave, 
                       col = Wave, group = Regulation,
                       y = Importance, 
                       x = Regulation)) +
  geom_point(size = 5, alpha = 0.5, position = position_dodge2(width = .5)) +
  geom_line(size = 1, color = "#808080", position = position_dodge2(width = .5)) +
  facet_grid(rows = vars(`Installed eRouška?`)) +
  labs (
    title = "Differences in importance of selected regulations of eRouška",
    subtitle = paste0("by decision not/install eRouška. (N=", nrow(df2) + nrow(df) ,")."),
    x = "",
    y = "Importance (1 - unimportant, 10 - max. important)"
  ) +
  scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
  theme_classic() + 
  theme(
    legend.position = "bottom"
  )
## `summarise()` has grouped output by 'Regulation', 'Wave'. You can override using the `.groups` argument.

dfg %>% group_by(Regulation, Wave, `Installed eRouška?`) %>% summarise(Importance = mean(Importance, na.rm = T)) %>%  
  # ungroup() %>% 
  # pivot_wider(id_cols = c("Regulace", "Wave", "Nainstaluje si eRoušku?"), names_from = Wave) %>% 
  # mutate(Size = 1 + 2 * abs(`Pre (trust)` - `Post (priority)`)) %>% 
  # pivot_longer(cols = 3:4, names_to = "Phase") %>% 
  ggplot(mapping = aes(fill = `Installed eRouška?`, 
                       col = `Installed eRouška?`, group = Regulation,
                       y = Importance, 
                       x = Regulation)) +
  geom_point(size = 5, alpha = 0.5, position = position_dodge2(width = .5)) +
  geom_line(size = 1, color = "#808080", position = position_dodge2(width = .5)) +
  facet_grid(rows = vars(Wave)) +
  labs (
    title = "Differences in importance of selected regulations of eRouška",
    subtitle = paste0("by wave. (N=", nrow(df2) + nrow(df) ,")."),
    x = "",
    y = "Importance (1 - unimportant, 10 - max. important)"
  ) +
  scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
  theme_classic() + 
  theme(
    legend.position = "bottom"
  )
## `summarise()` has grouped output by 'Regulation', 'Wave'. You can override using the `.groups` argument.

Data ke stažení

Data jsou ke stažení zatím jen z první vlny v *.xlsx. Jednak jako číselné kódy (ty jsem použil v tomhle reportu), ale jsou k dispozici i jako textové labely.