Load Packages
haven
# Check if haven is already installed and if it is, load it.
if (!require(haven)){
# If it's not intalled, then tell R to install it.
install.packages("haven", dependencies = TRUE)
# Once it's installed, tell R to load it.
library(haven)
}
tidyverse
if (!require(tidyverse)){
install.packages("tidyverse", dependencies = TRUE)
library(tidyverse)
}
psych
if (!require(psych)){
install.packages("psych", dependencies = TRUE)
require(psych)
}
afex
if (!require(afex)){
install.packages("afex", dependencies = TRUE)
require(afex)
}
Importing Data
dataset <- read_sav("Build your Experiment_April 25, 2024_16.45.sav")
Clean Data
(dataset %>%
head(20) -> dataset)
(dataset %>%
filter(LocationLongitude > -122.5) %>%
mutate(LocationLatitude > 47.8 -> dataset.clean))
Create Vision
(dataset %>%
mutate(Vision = case_when(LocationLongitude == 1.1 ~ "Myopia",
LocationLongitude == 1.1 ~ "Hyperopia",
LocationLongitude == 1.1 ~ "Myopia",
LocationLongitude == 1.1 ~ "Hyperopia")) -> dataset.clean)
Create Navon Task
(dataset %>%
mutate(BuildYourExperiment = case_when(LocationLongitude == 1.1 ~ "Myopia",
LocationLongitude == 1.1 ~ "Hyperopia",
LocationLongitude == 1.1 ~ "Myopia",
LocationLongitude == 1.1 ~ "Hyperopia")) -> dataset.clean)
#create dataframe with only relevant variables to work with
Vision.keys <- data.frame (dataset.clean$NavonTask)
Warning: Unknown or uninitialised column: `NavonTask`.
#create list of 'keys'. The numbers just refer to the order of the question in the data.frame() you just made. The most important thing is to mark the questions that should be reserved scored with a '-'. Vision.keys <- make,keys(Vision, list(Vision=c(Vision, NavonTask)))
#score the scale
NavonTask.scales <- scoreItems (NavonTask.keys, NavonTask)
Error: object 'NavonTask' not found
ANOVA
aov_ez(id = "Vision",
dv = "NavonTask",
data = "dataset.clean",
between=c("RaceDFeb_sqrt", "RaceDFeb"),
anova_table = list(es = "pes"))
Error: variable(s) `NavonTask`, `RaceDFeb_sqrt`, `RaceDFeb`, `Vision` not in `data`
Study Design Table Numbers
Marginal means for NavonTask
dataset.clean %>%
group_by(NavonTask) %>%
summarise(m = mean(NavonTask),
sd = sd(NavonTask))
Error in `group_by()`:
! Must group by variables found in `.data`.
✖ Column `NavonTask` is not found.
Backtrace:
1. dataset.clean %>% group_by(NavonTask) %>% ...
4. dplyr:::group_by.data.frame(., NavonTask)
Marginal means for RaceDFeb_sqrt
dataset.clean %>%
group_by(RaceDFeb_sqrt) %>%
summarise(m = mean(RaceDFeb_sqrt),
sd = sd(RaceDFeb_sqrt))
Cell means (inside of the study design table)
dataset.clean %>%
group_by(RaceDFeb_sqrt) %>%
summarise(m = mean(NavonTask),
sd = sd(RaceDFeb_sqrt))
Error in `summarise()`:
ℹ In argument: `m = mean(NavonTask)`.
ℹ In group 1: `RaceDFeb_sqrt = -0.9611825`.
Caused by error in `h()`:
! error in evaluating the argument 'x' in selecting a method for function 'mean': object 'NavonTask' not found
Backtrace:
1. dataset.clean %>% group_by(RaceDFeb_sqrt) %>% ...
12. base::.handleSimpleError(...)
13. base (local) h(simpleError(msg, call))
Method section numbers
print(dfSummary(dataset.clean, graph.magnif = .75), method = 'render')
Warning: unable to open connection to X11 display ''
Data Frame Summary
dataset.clean
Dimensions: 20 x 9
Duplicates: 0
| No |
Variable |
Label |
Stats / Values |
Freqs (% of Valid) |
Graph |
Valid |
Missing |
| 1 |
Subject
[character] |
|
| 1. 03rose298 | | 2. 03rose570 | | 3. 04pink261 | | 4. 04rose292 | | 5. 06camelia540 | | 6. 07daisy123 | | 7. 09geranium419 | | 8. 09rose071 | | 9. 09rose143 | | 10. 12rose333 | | [ 10 others ] |
|
| 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 1 | ( | 5.0% | ) | | 10 | ( | 50.0% | ) |
|
 |
20
(100.0%) |
0
(0.0%) |
| 2 |
TrainTyp
[haven_labelled, vctrs_vctr, double] |
|
1 distinct value |
|
 |
20
(100.0%) |
0
(0.0%) |
| 3 |
EC
[haven_labelled, vctrs_vctr, double] |
IV: Training |
|
|
 |
20
(100.0%) |
0
(0.0%) |
| 4 |
IATOrder
[haven_labelled, vctrs_vctr, double] |
|
|
|
 |
20
(100.0%) |
0
(0.0%) |
| 5 |
RaceDFeb
[numeric] |
Attitude IAT (new algorithm: Gawronski:
prac, real, real) |
| Mean (sd) : 0.2 (0.8) | | min ≤ med ≤ max: | | -0.9 ≤ 0.1 ≤ 1.6 | | IQR (CV) : 1.3 (3.1) |
|
20 distinct values |
 |
20
(100.0%) |
0
(0.0%) |
| 6 |
IdenDFeb
[numeric] |
Iden IAT (new algorithm: Gawronski:
prac, real, real) |
| Mean (sd) : 0 (0.5) | | min ≤ med ≤ max: | | -1 ≤ 0 ≤ 1.1 | | IQR (CV) : 0.3 (-18.8) |
|
20 distinct values |
 |
20
(100.0%) |
0
(0.0%) |
| 7 |
TrainTyp_EffectCode
[numeric] |
IV: Type of Training |
1 distinct value |
|
 |
20
(100.0%) |
0
(0.0%) |
| 8 |
RaceDFeb_sqrt
[numeric] |
|
| Mean (sd) : 0.2 (0.8) | | min ≤ med ≤ max: | | -1 ≤ 0.3 ≤ 1.3 | | IQR (CV) : 1.5 (3.7) |
|
20 distinct values |
 |
20
(100.0%) |
0
(0.0%) |
| 9 |
PrisonGuardsVs.Prisoners
[character] |
|
|
|
|
0
(0.0%) |
20
(100.0%) |
Generated by summarytools 1.0.1 (R version 4.3.3)
2024-05-01
LS0tCnRpdGxlOiAiR3JvdXAgQW5hbHlzaXMgQXNzaWdubWVudCIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IHBhcGVyCiAgICB0b2M6IHRydWUKLS0tCgojIyBMb2FkIFBhY2thZ2VzIHsudGFic2V0fQoKIyMjIGhhdmVuCmBgYHtyfQojIENoZWNrIGlmIGhhdmVuIGlzIGFscmVhZHkgaW5zdGFsbGVkIGFuZCBpZiBpdCBpcywgbG9hZCBpdC4KaWYgKCFyZXF1aXJlKGhhdmVuKSl7CiAgIyBJZiBpdCdzIG5vdCBpbnRhbGxlZCwgdGhlbiB0ZWxsIFIgdG8gaW5zdGFsbCBpdC4KICBpbnN0YWxsLnBhY2thZ2VzKCJoYXZlbiIsIGRlcGVuZGVuY2llcyA9IFRSVUUpCiAgIyBPbmNlIGl0J3MgaW5zdGFsbGVkLCB0ZWxsIFIgdG8gbG9hZCBpdC4KICBsaWJyYXJ5KGhhdmVuKQp9CmBgYAoKIyMjIHRpZHl2ZXJzZQpgYGB7cn0KaWYgKCFyZXF1aXJlKHRpZHl2ZXJzZSkpewogIGluc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIsIGRlcGVuZGVuY2llcyA9IFRSVUUpCiAgbGlicmFyeSh0aWR5dmVyc2UpCn0KYGBgCgojIyMgc3VtbWFyeXRvb2xzCmBgYHtyfQppZiAoIXJlcXVpcmUoc3VtbWFyeXRvb2xzKSl7CiAgaW5zdGFsbC5wYWNrYWdlcygic3VtbWFyeXRvb2xzIiwgZGVwZW5kZW5jaWVzID0gVFJVRSkKICByZXF1aXJlKHN1bW1hcnl0b29scykKfQpgYGAKCiMjIyBwc3ljaApgYGB7cn0KaWYgKCFyZXF1aXJlKHBzeWNoKSl7CiAgaW5zdGFsbC5wYWNrYWdlcygicHN5Y2giLCBkZXBlbmRlbmNpZXMgPSBUUlVFKQogIHJlcXVpcmUocHN5Y2gpCn0KYGBgCgojIyMgYWZleApgYGB7cn0KaWYgKCFyZXF1aXJlKGFmZXgpKXsKICBpbnN0YWxsLnBhY2thZ2VzKCJhZmV4IiwgZGVwZW5kZW5jaWVzID0gVFJVRSkKICByZXF1aXJlKGFmZXgpCn0KYGBgCgojIyBJbXBvcnRpbmcgRGF0YQpgYGB7cn0KZGF0YXNldCA8LSByZWFkX3NhdigiQnVpbGQgeW91ciBFeHBlcmltZW50X0FwcmlsIDI1LCAyMDI0XzE2LjQ1LnNhdiIpCmBgYAoKCiMjIENsZWFuIERhdGEKYGBge3J9CihkYXRhc2V0ICU+JQogIGhlYWQoMjApIC0+IGRhdGFzZXQpIApgYGAKYGBge3J9CihkYXRhc2V0ICU+JSAKICBmaWx0ZXIoTG9jYXRpb25Mb25naXR1ZGUgPiAtMTIyLjUpICU+JQogIG11dGF0ZShMb2NhdGlvbkxhdGl0dWRlID4gNDcuOCAtPiBkYXRhc2V0LmNsZWFuKSkKYGBgCgojIyBDcmVhdGUgVmlzaW9uCmBgYHtyfQooZGF0YXNldCAlPiUgCm11dGF0ZShWaXNpb24gPSBjYXNlX3doZW4oTG9jYXRpb25Mb25naXR1ZGUgPT0gMS4xIH4gIk15b3BpYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbkxvbmdpdHVkZSA9PSAxLjEgfiAiSHlwZXJvcGlhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uTG9uZ2l0dWRlID09IDEuMSB+ICJNeW9waWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb25Mb25naXR1ZGUgPT0gMS4xIH4gIkh5cGVyb3BpYSIpKSAtPiBkYXRhc2V0LmNsZWFuKQpgYGAKCiMjIENyZWF0ZSBOYXZvbiBUYXNrCmBgYHtyfQooZGF0YXNldCAlPiUKICBtdXRhdGUoQnVpbGRZb3VyRXhwZXJpbWVudCA9IGNhc2Vfd2hlbihMb2NhdGlvbkxvbmdpdHVkZSA9PSAxLjEgfiAiTXlvcGlhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2F0aW9uTG9uZ2l0dWRlID09IDEuMSB+ICJIeXBlcm9waWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYXRpb25Mb25naXR1ZGUgPT0gMS4xIH4gIk15b3BpYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhdGlvbkxvbmdpdHVkZSA9PSAxLjEgfiAiSHlwZXJvcGlhIikpIC0+IGRhdGFzZXQuY2xlYW4pCmBgYAoKYGBge3J9CiNjcmVhdGUgZGF0YWZyYW1lIHdpdGggb25seSByZWxldmFudCB2YXJpYWJsZXMgdG8gd29yayB3aXRoClZpc2lvbi5rZXlzIDwtIGRhdGEuZnJhbWUgIChkYXRhc2V0LmNsZWFuJE5hdm9uVGFzaykKCiNjcmVhdGUgbGlzdCBvZiAna2V5cycuIFRoZSBudW1iZXJzIGp1c3QgcmVmZXIgdG8gdGhlIG9yZGVyIG9mIHRoZSBxdWVzdGlvbiBpbiB0aGUgZGF0YS5mcmFtZSgpIHlvdSBqdXN0IG1hZGUuIFRoZSBtb3N0IGltcG9ydGFudCB0aGluZyBpcyB0byBtYXJrIHRoZSBxdWVzdGlvbnMgdGhhdCBzaG91bGQgYmUgcmVzZXJ2ZWQgc2NvcmVkIHdpdGggYSAnLScuIFZpc2lvbi5rZXlzIDwtIG1ha2Usa2V5cyhWaXNpb24sIGxpc3QoVmlzaW9uPWMoVmlzaW9uLCBOYXZvblRhc2spKSkKCiNzY29yZSB0aGUgc2NhbGUKTmF2b25UYXNrLnNjYWxlcyA8LSBzY29yZUl0ZW1zIChOYXZvblRhc2sua2V5cywgTmF2b25UYXNrKQoKI3NhdmUgdGhlIHNjb3JlcyAKVmlzaW9uLnNjb3JlcyA8LSBWaXNpb24uc2NhbGVzJHNjb3JlcwoKI3NhdmUgdGhlIHNjb3JlcyBiYWNrIGluICdkYXRhc2V0JwpkYXRhc2V0LmNsZWFuJFZpc2lvbiA8LSBWaXNpb24uc2NvcmVzWyxdCgojcHJpbnQgdGhlIGNyb25iYWNoIGFscGhhClZpc2lvbi5zY2FsZXMkYWxwaGEKYGBgCgojIyBBTk9WQQpgYGB7cn0KYW92X2V6KGlkID0gIlZpc2lvbiIsCiAgICAgICBkdiA9ICJOYXZvblRhc2siLCAKICAgICAgZGF0YSA9ICJkYXRhc2V0LmNsZWFuIiwKICAgICAgYmV0d2Vlbj1jKCJSYWNlREZlYl9zcXJ0IiwgIlJhY2VERmViIiksCiAgICAgIGFub3ZhX3RhYmxlID0gbGlzdChlcyA9ICJwZXMiKSkKYGBgCgojIyBTdHVkeSBEZXNpZ24gVGFibGUgTnVtYmVycwoKTWFyZ2luYWwgbWVhbnMgZm9yIE5hdm9uVGFzawpgYGB7cn0KZGF0YXNldC5jbGVhbiAlPiUgCiAgZ3JvdXBfYnkoTmF2b25UYXNrKSAlPiUKICBzdW1tYXJpc2UobSA9IG1lYW4oTmF2b25UYXNrKSwKICAgICAgICAgICAgc2QgPSBzZChOYXZvblRhc2spKQpgYGAKCk1hcmdpbmFsIG1lYW5zIGZvciBSYWNlREZlYl9zcXJ0CmBgYHtyfQpkYXRhc2V0LmNsZWFuICU+JSAKICBncm91cF9ieShSYWNlREZlYl9zcXJ0KSAlPiUKICBzdW1tYXJpc2UobSA9IG1lYW4oUmFjZURGZWJfc3FydCksCiAgICAgICAgICAgIHNkID0gc2QoUmFjZURGZWJfc3FydCkpCmBgYApDZWxsIG1lYW5zIChpbnNpZGUgb2YgdGhlIHN0dWR5IGRlc2lnbiB0YWJsZSkKYGBge3J9CmRhdGFzZXQuY2xlYW4gJT4lCiAgZ3JvdXBfYnkoUmFjZURGZWJfc3FydCkgJT4lCiAgc3VtbWFyaXNlKG0gPSBtZWFuKE5hdm9uVGFzayksCiAgICAgICAgICAgIHNkID0gc2QoUmFjZURGZWJfc3FydCkpCmBgYAoKIyMgTWV0aG9kIHNlY3Rpb24gbnVtYmVycwpgYGB7cn0KcHJpbnQoZGZTdW1tYXJ5KGRhdGFzZXQuY2xlYW4sIGdyYXBoLm1hZ25pZiA9IC43NSksIG1ldGhvZCA9ICdyZW5kZXInKSAKYGBgCgo=