#Load packages 

library(lme4)
## Loading required package: Matrix
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.3     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ tidyr::expand() masks Matrix::expand()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ tidyr::pack()   masks Matrix::pack()
## ✖ tidyr::unpack() masks Matrix::unpack()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(afex)
## ************
## Welcome to afex. For support visit: http://afex.singmann.science/
## - Functions for ANOVAs: aov_car(), aov_ez(), and aov_4()
## - Methods for calculating p-values with mixed(): 'S', 'KR', 'LRT', and 'PB'
## - 'afex_aov' and 'mixed' objects can be passed to emmeans() for follow-up tests
## - Get and set global package options with: afex_options()
## - Set sum-to-zero contrasts globally: set_sum_contrasts()
## - For example analyses see: browseVignettes("afex")
## ************
## 
## Attaching package: 'afex'
## 
## The following object is masked from 'package:lme4':
## 
##     lmer
getwd()
## [1] "/Users/maggie/Downloads/bookR"
setwd("/Users/maggie/Downloads/bookR")

#Load data, and name that object "COND1_4.csv"

stimIA_data <- read_csv("Sheet 1-stim_IA_full.csv")
## Rows: 12183 Columns: 183
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (143): RECORDING_SESSION_LABEL, TRIAL_LABEL, IA_LABEL, IA_FIRST_RUN_DWEL...
## dbl  (36): TRIAL_INDEX, IA_ID, IA_DWELL_TIME, IA_FIXATION_COUNT, IP_INDEX, A...
## lgl   (4): IA_DYNAMIC, IP_END_EVENT_MATCHED, IP_START_EVENT_MATCHED, Trial_R...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
#View the first six rows of the data frame

head(stimIA_data)
## # A tibble: 6 × 183
##   RECORDING_SESSION_LABEL TRIAL_INDEX TRIAL_LABEL IA_ID IA_LABEL IA_DWELL_TIME
##   <chr>                         <dbl> <chr>       <dbl> <chr>            <dbl>
## 1 01LYX                             1 Trial: 1        5 Her                  0
## 2 01LYX                             1 Trial: 1        6 collar               0
## 3 01LYX                             1 Trial: 1        7 is                   0
## 4 01LYX                             1 Trial: 1        8 ___                  0
## 5 01LYX                             1 Trial: 1        9 all                  0
## 6 01LYX                             1 Trial: 1       10 the                  0
## # ℹ 177 more variables: IA_FIRST_RUN_DWELL_TIME <chr>,
## #   IA_SECOND_RUN_DWELL_TIME <chr>, `IA_DWELL_TIME_%` <chr>,
## #   IA_FIRST_FIXATION_DURATION <chr>, IA_FIRST_FIXATION_INDEX <chr>,
## #   IA_FIRST_FIXATION_X <chr>, IA_FIRST_FIXATION_Y <chr>,
## #   IA_FIRST_SACCADE_AMPLITUDE <chr>, IA_FIRST_SACCADE_ANGLE <chr>,
## #   IA_FIRST_SACCADE_INDEX <chr>, `IA_FIXATION_%` <chr>,
## #   IA_FIXATION_COUNT <dbl>, IP_INDEX <dbl>, IP_LABEL <chr>, ACC <dbl>, …
#Select variables
glimpse(stimIA_data)
## Rows: 12,183
## Columns: 183
## $ RECORDING_SESSION_LABEL               <chr> "01LYX", "01LYX", "01LYX", "01LY…
## $ TRIAL_INDEX                           <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ TRIAL_LABEL                           <chr> "Trial: 1", "Trial: 1", "Trial: …
## $ IA_ID                                 <dbl> 5, 6, 7, 8, 9, 10, 11, 41, 42, 4…
## $ IA_LABEL                              <chr> "Her", "collar", "is", "___", "a…
## $ IA_DWELL_TIME                         <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FIRST_RUN_DWELL_TIME               <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_DWELL_TIME              <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_DWELL_TIME_%`                     <chr> "0.0000", "0.0000", "0.0000", "0…
## $ IA_FIRST_FIXATION_DURATION            <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_INDEX               <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_X                   <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_Y                   <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_SACCADE_AMPLITUDE            <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_SACCADE_ANGLE                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_SACCADE_INDEX                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_FIXATION_%`                       <chr> "0.0000", "0.0000", "0.0000", "0…
## $ IA_FIXATION_COUNT                     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IP_INDEX                              <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ IP_LABEL                              <chr> "Stimuli", "Stimuli", "Stimuli",…
## $ ACC                                   <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ ChoiceMade                            <chr> "B", "B", "B", "B", "B", "B", "B…
## $ PositionList                          <chr> "[(146, 437), (528, 437), (146, …
## $ RT                                    <dbl> 6146.020, 6146.020, 6146.020, 61…
## $ conditionid                           <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ cnPassedLength                        <dbl> 316, 316, 316, 316, 316, 316, 31…
## $ currentItemIndex                      <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,…
## $ enPassedLength                        <dbl> 372, 372, 372, 372, 372, 372, 37…
## $ enlist                                <chr> "[Her collar, is neat, all the t…
## $ groupid                               <chr> "A", "A", "A", "A", "A", "A", "A…
## $ type                                  <chr> "p", "p", "p", "p", "p", "p", "p…
## $ IA_FIRST_SACCADE_END_TIME             <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_SACCADE_START_TIME           <chr> ".", ".", ".", ".", ".", ".", ".…
## $ DATA_FILE                             <chr> "01LYX.edf", "01LYX.edf", "01LYX…
## $ EYE_USED                              <chr> "LEFT", "LEFT", "LEFT", "LEFT", …
## $ GROUPING_VARIABLES                    <chr> "trialid", "trialid", "trialid",…
## $ IA_AREA                               <dbl> 4300, 5600, 2400, 3200, 3200, 32…
## $ IA_AVERAGE_FIX_PUPIL_SIZE             <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_BOTTOM                             <dbl> 225, 225, 225, 225, 225, 225, 22…
## $ IA_DYNAMIC                            <lgl> FALSE, FALSE, FALSE, FALSE, FALS…
## $ IA_END_TIME                           <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_PREVIOUS_FIX_IA     <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_PREVIOUS_IAREAS     <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_RUN_INDEX           <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_TIME                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIXATION_VISITED_IA_COUNT    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_FIX_PROGRESSIVE              <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_END_TIME                 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_FIRST_RUN_FIXATION_%`             <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_FIXATION_COUNT           <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_LANDING_POSITION         <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_LAUNCH_SITE              <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FIRST_RUN_START_TIME               <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_5                        <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_6                        <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_7                        <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_8                        <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_9                        <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_10                       <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_11                       <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_41                       <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_42                       <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_43                       <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_44                       <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_51                       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FSA_COUNT_52                       <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FSA_COUNT_53                       <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_COUNT_61                       <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_62                       <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_63                       <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_54                       <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_COUNT_64                       <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_5                     <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_6                     <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_7                     <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_8                     <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_9                     <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_10                    <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_11                    <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_41                    <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_42                    <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_43                    <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_44                    <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_51                    <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FSA_DURATION_52                    <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_FSA_DURATION_53                    <chr> "0", "0", "0", "0", "0", "0", "0…
## $ IA_FSA_DURATION_61                    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_62                    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_63                    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_54                    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_FSA_DURATION_64                    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_GROUP                              <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_INSTANCES_COUNT                    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_DURATION             <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_RUN                  <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_TIME                 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_X                    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_FIXATION_Y                    <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_DWELL_TIME                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_END_TIME                  <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_LAST_RUN_FIXATION_%`              <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_FIXATION_COUNT            <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_LANDING_POSITION          <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_LAUNCH_SITE               <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_RUN_START_TIME                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_AMPLITUDE             <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_ANGLE                 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_END_TIME              <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_INDEX                 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LAST_SACCADE_START_TIME            <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_LEFT                               <dbl> 70, 156, 268, 316, 380, 444, 508…
## $ IA_LEGAL                              <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_LEGAL_IMMEDIATE                    <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_MAX_FIX_PUPIL_SIZE                 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_MIN_FIX_PUPIL_SIZE                 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_POINTS                             <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_IN                      <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_IN_COUNT                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_OUT                     <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_OUT_COUNT               <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_OUT_FULL                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_OUT_FULL_COUNT          <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_REGRESSION_PATH_DURATION           <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_RIGHT                              <dbl> 156, 268, 316, 380, 444, 508, 62…
## $ IA_RUN_COUNT                          <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ IA_SECOND_FIXATION_DURATION           <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_FIXATION_RUN                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_FIXATION_TIME               <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_FIXATION_X                  <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_FIXATION_Y                  <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_END_TIME                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_SECOND_RUN_FIXATION_%`            <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_FIXATION_COUNT          <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_LANDING_POSITION        <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_LAUNCH_SITE             <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SECOND_RUN_START_TIME              <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SELECTIVE_REGRESSION_PATH_DURATION <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_SKIP                               <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ IA_SPILLOVER                          <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_START_TIME                         <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_DURATION            <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_RUN                 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_TIME                <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_X                   <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_FIXATION_Y                   <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_DWELL_TIME               <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_END_TIME                 <chr> ".", ".", ".", ".", ".", ".", ".…
## $ `IA_THIRD_RUN_FIXATION_%`             <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_FIXATION_COUNT           <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_LANDING_POSITION         <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_LAUNCH_SITE              <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_THIRD_RUN_START_TIME               <chr> ".", ".", ".", ".", ".", ".", ".…
## $ IA_TOP                                <dbl> 175, 175, 175, 175, 175, 175, 17…
## $ IA_TYPE                               <chr> "RECTANGLE", "RECTANGLE", "RECTA…
## $ INTEREST_AREA_FIXATION_SEQUENCE       <chr> "[0, 51, 0, 52, 0, 53]", "[0, 51…
## $ IP_END_EVENT_MATCHED                  <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TR…
## $ IP_END_TIME                           <dbl> 655766, 655766, 655766, 655766, …
## $ IP_START_EVENT_MATCHED                <lgl> TRUE, TRUE, TRUE, TRUE, TRUE, TR…
## $ IP_START_TIME                         <dbl> 652825, 652825, 652825, 652825, …
## $ REPORTING_METHOD                      <chr> "Fixations", "Fixations", "Fixat…
## $ TIME_SCALE                            <chr> "Trial Relative", "Trial Relativ…
## $ TRIAL_DWELL_TIME                      <dbl> 2615, 2615, 2615, 2615, 2615, 26…
## $ TRIAL_FIXATION_COUNT                  <dbl> 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,…
## $ TRIAL_IA_COUNT                        <dbl> 14, 14, 14, 14, 14, 14, 14, 14, …
## $ TRIAL_START_TIME                      <dbl> 652739, 652739, 652739, 652739, …
## $ TRIAL_TOTAL_VISITED_IA_COUNT          <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,…
## $ RandomPostitonIndex                   <chr> "[3, 0, 2, 1]", "[3, 0, 2, 1]", …
## $ Session_Name_                         <chr> "01LYX", "01LYX", "01LYX", "01LY…
## $ Trial_Index_                          <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,…
## $ Trial_Recycled_                       <lgl> FALSE, FALSE, FALSE, FALSE, FALS…
## $ audiofile                             <chr> "p2.wav", "p2.wav", "p2.wav", "p…
## $ choicea                               <chr> "tidy", "tidy", "tidy", "tidy", …
## $ choiceb                               <chr> "clean", "clean", "clean", "clea…
## $ choicec                               <chr> "white", "white", "white", "whit…
## $ choiced                               <chr> "broken", "broken", "broken", "b…
## $ currentWait                           <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ discript                              <chr> "单语", "单语", "单语", "单语", …
## $ fontSize                              <dbl> 20, 20, 20, 20, 20, 20, 20, 20, …
## $ listLength                            <dbl> 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,…
## $ questionstring                        <chr> "Her collar is ___ all the time.…
## $ timelist                              <chr> "[1033, 882, 960]", "[1033, 882,…
## $ trialid                               <chr> "p2", "p2", "p2", "p2", "p2", "p…
## $ wordsPass                             <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
variables <-  c("RECORDING_SESSION_LABEL", "trialid","IA_ID",
                "IA_DWELL_TIME_%","IA_FIXATION_%","RT",
                "ACC","IA_DWELL_TIME","IA_FIRST_FIXATION_DURATION",
                "IA_FIRST_FIXATION_INDEX","currentItemIndex","discript",
                "conditionid","groupid")
stim1 <- stimIA_data %>% 
  select(any_of(variables))

glimpse(stim1)
## Rows: 12,183
## Columns: 14
## $ RECORDING_SESSION_LABEL    <chr> "01LYX", "01LYX", "01LYX", "01LYX", "01LYX"…
## $ trialid                    <chr> "p2", "p2", "p2", "p2", "p2", "p2", "p2", "…
## $ IA_ID                      <dbl> 5, 6, 7, 8, 9, 10, 11, 41, 42, 43, 44, 51, …
## $ `IA_DWELL_TIME_%`          <chr> "0.0000", "0.0000", "0.0000", "0.0000", "0.…
## $ `IA_FIXATION_%`            <chr> "0.0000", "0.0000", "0.0000", "0.0000", "0.…
## $ RT                         <dbl> 6146.020, 6146.020, 6146.020, 6146.020, 614…
## $ ACC                        <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…
## $ IA_DWELL_TIME              <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 604, 256, …
## $ IA_FIRST_FIXATION_DURATION <chr> ".", ".", ".", ".", ".", ".", ".", ".", "."…
## $ IA_FIRST_FIXATION_INDEX    <chr> ".", ".", ".", ".", ".", ".", ".", ".", "."…
## $ currentItemIndex           <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2…
## $ discript                   <chr> "单语", "单语", "单语", "单语", "单语", "单…
## $ conditionid                <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4…
## $ groupid                    <chr> "A", "A", "A", "A", "A", "A", "A", "A", "A"…
stim1 %>% 
  count(trialid)
## # A tibble: 72 × 2
##    trialid     n
##    <chr>   <int>
##  1 1          93
##  2 10         93
##  3 11         93
##  4 12         93
##  5 13         93
##  6 14         93
##  7 15         93
##  8 16         62
##  9 17         62
## 10 18         93
## # ℹ 62 more rows
view(stim1 %>% 
       count(trialid))

#delete practice trail
stim2 <- stim1 %>% 
  filter(trialid != "p1" ) %>% 
  filter(trialid != "p2" ) %>% 
  filter(trialid != "p3" ) %>% 
  filter(trialid != "p4" )
  
  view(stim2 %>% 
         count(trialid))
  
#cross tabulate
table(stim2$RECORDING_SESSION_LABEL,stim2$discript)
##            
##             单语 双语
##   01LYX      109  222
##   02PQJ      222  109
##   03LSY      109  222
##   04CMY      222  109
##   05MXJ      109  222
##   06HC       222  109
##   07GXJ      109  222
##   08ZYQ      222  109
##   09MZW      109  222
##   10WLH      222  109
##   11LDP      109  222
##   12SCC      222  109
##   13WSR      109  222
##   15ZMZ      109  222
##   16QY       222  109
##   17DSL      109  222
##   18BXY      222  109
##   19WLL      109  222
##   20ZZY      222  109
##   21WYQ      109  222
##   22SYC      222  109
##   23SYH      109  222
##   24MBH      222  109
##   25HYX      109  222
##   26CJ       222  109
##   27YSH      109  222
##   28HYX      222  109
##   29HRE      109  222
##   30YAL      222  109
##   31SWY      109  222
##   ZWL 14.00  222  109
table(stim2$RECORDING_SESSION_LABEL,stim2$conditionid)  
##            
##               1   2   3   4
##   01LYX      53  56 112 110
##   02PQJ     112 110  53  56
##   03LSY      56  53 110 112
##   04CMY     110 112  56  53
##   05MXJ      53  56 112 110
##   06HC      112 110  53  56
##   07GXJ      56  53 110 112
##   08ZYQ     110 112  56  53
##   09MZW      53  56 112 110
##   10WLH     112 110  53  56
##   11LDP      56  53 110 112
##   12SCC     110 112  56  53
##   13WSR      53  56 112 110
##   15ZMZ      56  53 110 112
##   16QY      110 112  56  53
##   17DSL      53  56 112 110
##   18BXY     112 110  53  56
##   19WLL      56  53 110 112
##   20ZZY     110 112  56  53
##   21WYQ      53  56 112 110
##   22SYC     112 110  53  56
##   23SYH      56  53 110 112
##   24MBH     110 112  56  53
##   25HYX      53  56 112 110
##   26CJ      112 110  53  56
##   27YSH      56  53 110 112
##   28HYX     110 112  56  53
##   29HRE      53  56 112 110
##   30YAL     112 110  53  56
##   31SWY      56  53 110 112
##   ZWL 14.00 112 110  53  56
table(stim2$groupid,stim2$discript)
##    
##     单语 双语
##   A  872 1776
##   B 1776  872
##   C  872 1776
##   D 1554  763
table(stim2$groupid,stim2$discript)
##    
##     单语 双语
##   A  872 1776
##   B 1776  872
##   C  872 1776
##   D 1554  763
# delete outliers by subj
stim3 <- stim2 %>% 
  group_by(RECORDING_SESSION_LABEL) %>% 
  filter(RT>150&abs(scale(RT))<=3)
## Warning: Using one column matrices in `filter()` was deprecated in dplyr 1.1.0.
## ℹ Please use one dimensional logical vectors instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
stim3 %>% 
  group_by(groupid,discript) %>% 
  summarise(mRT=mean(RT),
  SD=sd(RT))
## `summarise()` has grouped output by 'groupid'. You can override using the
## `.groups` argument.
## # A tibble: 8 × 4
## # Groups:   groupid [4]
##   groupid discript   mRT    SD
##   <chr>   <chr>    <dbl> <dbl>
## 1 A       单语     4962. 2881.
## 2 A       双语     4634. 2421.
## 3 B       单语     4884. 2414.
## 4 B       双语     5046. 2415.
## 5 C       单语     4408. 2003.
## 6 C       双语     4023. 1783.
## 7 D       单语     4150. 1856.
## 8 D       双语     4242. 1761.
#geom_boxplot
ggplot(stim3,aes(groupid,RT,fill=discript))+
  geom_boxplot(notch = TRUE)+
  facet_wrap(~discript)

#mixed model
library(lme4)
summary(mix.m0 <- lmer(RT~discript*conditionid+
                         (1+discript*conditionid|RECORDING_SESSION_LABEL)+
                         (1|groupid),
                       data=stim3),cor=F)
## boundary (singular) fit: see help('isSingular')
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: 
## RT ~ discript * conditionid + (1 + discript * conditionid | RECORDING_SESSION_LABEL) +  
##     (1 | groupid)
##    Data: stim3
## 
## REML criterion at convergence: 179202.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.7858 -0.5959 -0.1528  0.4378  4.4960 
## 
## Random effects:
##  Groups                  Name                     Variance Std.Dev. Corr       
##  RECORDING_SESSION_LABEL (Intercept)               618711   786.6              
##                          discript双语             4513964  2124.6   -0.24      
##                          conditionid               685875   828.2   -0.22  0.03
##                          discript双语:conditionid  713510   844.7    0.30 -0.76
##  groupid                 (Intercept)                    0     0.0              
##  Residual                                         2857363  1690.4              
##       
##       
##       
##       
##  -0.65
##       
##       
## Number of obs: 10107, groups:  RECORDING_SESSION_LABEL, 31; groupid, 4
## 
## Fixed effects:
##                          Estimate Std. Error       df t value Pr(>|t|)    
## (Intercept)               2291.46     161.83    28.40  14.160 2.14e-14 ***
## discript双语             -1653.51     427.53    30.10  -3.868 0.000546 ***
## conditionid               1552.65     157.02    29.48   9.888 7.17e-11 ***
## discript双语:conditionid  -452.74     167.44    29.91  -2.704 0.011195 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
summary(mix.m1 <- lmer(RT~discript*conditionid+
                         (1+discript+conditionid|RECORDING_SESSION_LABEL)+
                         (1|groupid),
                       data=stim3),cor=F)
## boundary (singular) fit: see help('isSingular')
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: 
## RT ~ discript * conditionid + (1 + discript + conditionid | RECORDING_SESSION_LABEL) +  
##     (1 | groupid)
##    Data: stim3
## 
## REML criterion at convergence: 179297.2
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.1677 -0.5878 -0.1491  0.4417  4.5680 
## 
## Random effects:
##  Groups                  Name         Variance  Std.Dev.  Corr       
##  RECORDING_SESSION_LABEL (Intercept)  8.627e+05 9.288e+02            
##                          discript双语 2.001e+06 1.415e+03 -0.14      
##                          conditionid  3.925e+05 6.265e+02 -0.01 -0.92
##  groupid                 (Intercept)  5.393e-04 2.322e-02            
##  Residual                             2.896e+06 1.702e+03            
## Number of obs: 10107, groups:  RECORDING_SESSION_LABEL, 31; groupid, 4
## 
## Fixed effects:
##                          Estimate Std. Error       df t value Pr(>|t|)    
## (Intercept)               2287.43     184.23    35.47  12.416 1.80e-14 ***
## discript双语             -1685.21     318.96    62.07  -5.283 1.73e-06 ***
## conditionid               1557.90     122.97    35.93  12.669 8.11e-15 ***
## discript双语:conditionid  -447.14      71.41  9062.85  -6.262 3.98e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
summary(mix.m2 <- lmer(log(RT)~discript*conditionid+
                         (1+discript+conditionid|RECORDING_SESSION_LABEL)+
                         (1|groupid),
                       data=stim3),cor=F)
## boundary (singular) fit: see help('isSingular')
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: log(RT) ~ discript * conditionid + (1 + discript + conditionid |  
##     RECORDING_SESSION_LABEL) + (1 | groupid)
##    Data: stim3
## 
## REML criterion at convergence: 7028.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.1095 -0.6576 -0.0378  0.6418  3.7196 
## 
## Random effects:
##  Groups                  Name         Variance Std.Dev. Corr       
##  RECORDING_SESSION_LABEL (Intercept)  0.081940 0.28625             
##                          discript双语 0.030856 0.17566   0.25      
##                          conditionid  0.006868 0.08287  -0.39 -0.85
##  groupid                 (Intercept)  0.000000 0.00000             
##  Residual                             0.113986 0.33762             
## Number of obs: 10107, groups:  RECORDING_SESSION_LABEL, 31; groupid, 4
## 
## Fixed effects:
##                            Estimate Std. Error         df t value Pr(>|t|)    
## (Intercept)                 7.85108    0.05370   32.42526 146.194  < 2e-16 ***
## discript双语               -0.40825    0.04958  115.19656  -8.234 3.19e-13 ***
## conditionid                 0.31923    0.01784   42.28249  17.896  < 2e-16 ***
## discript双语:conditionid   -0.07230    0.01415 8854.37250  -5.108 3.32e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## optimizer (nloptwrap) convergence code: 0 (OK)
## boundary (singular) fit: see help('isSingular')
summary(mix.m3 <- lmer(log(RT)~discript*conditionid+
                         (1+conditionid|RECORDING_SESSION_LABEL)+
                         (1|groupid),
                       data=stim3),cor=F)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: 
## log(RT) ~ discript * conditionid + (1 + conditionid | RECORDING_SESSION_LABEL) +  
##     (1 | groupid)
##    Data: stim3
## 
## REML criterion at convergence: 7105.8
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.2295 -0.6667 -0.0415  0.6467  3.7404 
## 
## Random effects:
##  Groups                  Name        Variance  Std.Dev.  Corr 
##  RECORDING_SESSION_LABEL (Intercept) 7.719e-02 2.778e-01      
##                          conditionid 1.886e-03 4.343e-02 -0.35
##  groupid                 (Intercept) 3.609e-09 6.008e-05      
##  Residual                            1.154e-01 3.398e-01      
## Number of obs: 10107, groups:  RECORDING_SESSION_LABEL, 31; groupid, 4
## 
## Fixed effects:
##                            Estimate Std. Error         df t value Pr(>|t|)    
## (Intercept)               7.854e+00  5.223e-02  3.372e+01 150.375  < 2e-16 ***
## discript双语             -4.177e-01  3.722e-02  1.007e+04 -11.223  < 2e-16 ***
## conditionid               3.171e-01  1.243e-02  1.411e+02  25.513  < 2e-16 ***
## discript双语:conditionid -6.835e-02  1.367e-02  1.007e+04  -4.999 5.85e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(mix.m3,mix.m0,refit=FALSE)
## Data: stim3
## Models:
## mix.m3: log(RT) ~ discript * conditionid + (1 + conditionid | RECORDING_SESSION_LABEL) + (1 | groupid)
## mix.m0: RT ~ discript * conditionid + (1 + discript * conditionid | RECORDING_SESSION_LABEL) + (1 | groupid)
##        npar    AIC    BIC logLik deviance Chisq Df Pr(>Chisq)
## mix.m3    9   7124   7189  -3553     7106                    
## mix.m0   16 179235 179350 -89601   179203     0  7          1
#model diagnosis
qqnorm(residuals(mix.m3))
qqline(residuals(mix.m3))

hist(residuals(mix.m3))

MuMIn::r.squaredGLMM(mix.m3)
## Warning: 'r.squaredGLMM' now calculates a revised statistic. See the help page.
##            R2m       R2c
## [1,] 0.0988961 0.4392971
#fixed and interaction effect obtained
afex::mixed(log(RT)~discript*conditionid+
              (1+conditionid|RECORDING_SESSION_LABEL)+
              (1|groupid),
            REML=FALSE,
            method="LRT",
            data=stim3)
## Contrasts set to contr.sum for the following variables: discript, RECORDING_SESSION_LABEL, groupid
## Numerical variables NOT centered on 0: conditionid
## If in interactions, interpretation of lower order (e.g., main) effects difficult.
## Warning: Model failed to converge with 1 negative eigenvalue: -7.0e-01
## boundary (singular) fit: see help('isSingular')
## Warning: Model failed to converge with 1 negative eigenvalue: -5.3e+02
## Warning: lme4 reported (at least) the following warnings for 'discript:conditionid':
##   * boundary (singular) fit: see help('isSingular')
## Mixed Model Anova Table (Type 3 tests, LRT-method)
## 
## Model: log(RT) ~ discript * conditionid + (1 + conditionid | RECORDING_SESSION_LABEL) + 
## Model:     (1 | groupid)
## Data: stim3
## Df full model: 9
##                 Effect df      Chisq p.value
## 1             discript  1 124.88 ***   <.001
## 2          conditionid  1 112.88 ***   <.001
## 3 discript:conditionid  1  24.98 ***   <.001
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
#check interaction effect
emmeans::emmeans(mix.m3,specs = pairwise~discript*conditionid)
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'pbkrtest.limit = 10107' (or larger)
## [or, globally, 'set emm_options(pbkrtest.limit = 10107)' or larger];
## but be warned that this may result in large computation time and memory use.
## Note: D.f. calculations have been disabled because the number of observations exceeds 3000.
## To enable adjustments, add the argument 'lmerTest.limit = 10107' (or larger)
## [or, globally, 'set emm_options(lmerTest.limit = 10107)' or larger];
## but be warned that this may result in large computation time and memory use.
## $emmeans
##  discript conditionid emmean     SE  df asymp.LCL asymp.UCL
##  单语            2.51   8.65 0.0480 Inf      8.55      8.74
##  双语            2.51   8.06 0.0479 Inf      7.97      8.15
## 
## Degrees-of-freedom method: asymptotic 
## Results are given on the log (not the response) scale. 
## Confidence level used: 0.95 
## 
## $contrasts
##      contrast                                                      estimate
##  单语 conditionid2.5080637182151 - 双语 conditionid2.5080637182151    0.589
##      SE  df z.ratio p.value
##  0.0153 Inf  38.389  <.0001
## 
## Degrees-of-freedom method: asymptotic 
## Results are given on the log (not the response) scale.