## Used by Peder to upload the script #source("~/r/sourceFunctions.RceFunctions.R") #scpToSunfire("./analyserQuestionnaire.R", "~/www/introstat/", addUTF8BOM=TRUE) # Link to form: https://forms.gle/zWSepszDXRknzgVW8 ## First time you need to install the package gsheet: #install.packages("gsheet") ## Load the package library(gsheet) ################################ ## Open data from a google sheet and process a bit # Results from Danish questionnaire url <- "https://docs.google.com/spreadsheets/d/12jCtf5tpPsBINiBrXPNG1JqIjwLhEevwggAiovCSImg" # Results from English questionnaire #url <- "https://docs.google.com/spreadsheets/d/1_gMnNu6Huv8q8A1YXpvCTm17ZWom8qYJ9Me-2yXbbic" # Download X <- gsheet2tbl(url, sheetid = NULL) attr(X, "spec") <- NULL X <- as.data.frame(X) # Col names names(X) <- c("time","bekymretOverTrump","bekymretOverKlima","EUFalderSammen","valg","transportSommer","transportVinter","antalSko","skoForbrug","miljoIndkober","forMegetComputer") X$time X$time <- as.POSIXct(X$time, format="%d/%m/%Y %H:%M:%S") ## Take only answers after a specific date #X <- X[X$time > as.POSIXct("2022-04-08"), ] ## Replace the long answers of which side you vote for X$valg[grep("^B",X$valg)] <- "BlaaBlok" X$valg[grep("^R",X$valg)] <- "RoedBlok" ## See what is in it? str(X) head(X) ################################################################ ## Enkelte andele ################################################################ ## Sæt n til antal besvarelser n <- nrow(X) ################ ## Var over halvdelen generelt mere bekymret da Trump var præsident? x <- sum(X$bekymretOverTrump == "Ja") prop.test(x, n, p=0.5, correct=TRUE, conf.level = 0.95) ################ ## Er over halvdelen bekymret for klimaet? x <- sum(X$bekymretOverKlima == "Ja") prop.test(x, n, p=0.5, correct=TRUE) ################################################################ ## Sammenlign 2 andele ################################################################ ################ ## Er der flere som bekymrer sig om klimaet end der tror EU falder sammen? xKlima <- sum(X$bekymretOverKlima == "Ja") xEU <- sum(X$EUFalderSammen == "Ja") tbl <- matrix(c(xKlima, (n-xKlima), xEU, (n-xEU)), nrow=2) rownames(tbl) <- c('Ja','Nej') colnames(tbl) <- c('bekymretOverKlima','EUFalderSammen') ## Se tabellen tbl ## Test for forskel på 2 andele prop.test(t(tbl), correct=TRUE) prop.test(c(xKlima,xEU), c(n,n), correct=FALSE) ################ ## Er der flere, som stemmer den ene blok som er bekymrede for klimaet? (xRoed <- sum(X$bekymretOverKlima == 'Ja' & X$valg == "RoedBlok")) (nRoed <- sum(X$valg == "RoedBlok")) (xBlaa <- sum(X$bekymretOverKlima == 'Ja' & X$valg == "BlaaBlok")) (nBlaa <- sum(X$valg == "BlaaBlok")) ## Test for forskel på 2 andele prop.test(x=c(xRoed,xBlaa), n=c(nRoed,nBlaa), correct=TRUE) ## Eller chi2-test tbl <- matrix(c(xRoed, (nRoed-xRoed), xBlaa, (nBlaa-xBlaa)), nrow=2) rownames(tbl) <- c('BekymretOverKlima','IkkeBekymretOverKlima') colnames(tbl) <- c('Roed','Blaa') ## Se tabellen tbl ## chi2-test chisq.test(tbl, correct=TRUE) ################################################################ ## Sammenlign c andele ################################################################ ## Er der forskel på hvordan man stemmer afhængigt af om man mener man er miljøbevidst? ## Del på miljøbevidst og tæl hvor mange stemte på en blok (xUenigRoed <- sum(X$miljoIndkober == 'Uenig' & X$valg == "RoedBlok")) (xUenigBlaa <- sum(X$miljoIndkober == 'Uenig' & X$valg == "BlaaBlok")) (xEnigRoed <- sum(X$miljoIndkober == 'Enig' & X$valg == "RoedBlok")) (xEnigBlaa <- sum(X$miljoIndkober == 'Enig' & X$valg == "BlaaBlok")) (xMegetEnigRoed <- sum(X$miljoIndkober == 'Meget enig' & X$valg == "RoedBlok")) (xMegetEnigBlaa <- sum(X$miljoIndkober == 'Meget enig' & X$valg == "BlaaBlok")) ## tbl <- matrix(c(xUenigRoed, xUenigBlaa, xEnigRoed, xEnigBlaa, xMegetEnigRoed, xMegetEnigBlaa), nrow=2) rownames(tbl) <- c('Roed','Blaa') colnames(tbl) <- c('Uenig','Enig','MegetEnig') ## Se tabellen tbl prop.table(t(tbl)) ## Chi2-test tmp <- chisq.test(t(tbl), correct=TRUE) tmp$expected tbl tmp ################################################################ ## >2 kategorier, sammenlign to grupper ################################################################ ## Hvis man tror køber bruger mange sko, gør man det så rent faktisk? ## Man mener om sit skoforbrug table(X$skoForbrug) ## Se fordelingen af købte antal sko hist(X$antalSko) ## Del op i 2 grupper på hvor mange sko man egentligt har købt ## Del op i 2 lige store grupper N <- 2 breaks <- quantile(X$antalSko, (0:N)/N) breaks groups <- split(X$skoForbrug, cut(X$antalSko, breaks, include.lowest = TRUE)) groups tbl <- matrix(0, nrow=N, ncol=3) rownames(tbl) <- c("FåKøbte", "MangeKøbte") colnames(tbl) <- c("Uenig", "Enig", "Meget enig") for(i in 1:N){ tbl[i,names(table(groups[[i]]))] <- table(groups[[i]]) } ## Look at the table tbl ## Chi2-test for om det er forskellig fordeling i de 2 grupper chisq.test(tbl, correct=FALSE) ################################################################ ## >2 kategorier, sammenlign mange grupper ################################################################ ## Er der samme andele i 3 af kategorierne? tbl <- matrix(c(table(X$skoForbrug), table(X$miljoIndkober), table(X$forMegetComputer)), ncol=3) rownames(tbl) <- c('Uenig','Enig','Megetenig') colnames(tbl) <- c('SkoForbrug','MiljøIndkøber','ForMegetComputer') ## Se tabellen tbl ## Chi2-test chisq.test(tbl, correct=FALSE) ################################################################ ## Samme fordeling i 2 spørgsmål med samme kategorier? ################################################################ ######## ## Har man samme preferencer omkring transportmiddel om sommeren og om vinteren? (tbl <- table(X$transportSommer, X$transportVinter)) ## Chi2-test chisq.test(tbl, correct=TRUE)