Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analyse time clusters #63

Open
MonicaBarbir opened this issue Apr 14, 2018 · 4 comments
Open

Analyse time clusters #63

MonicaBarbir opened this issue Apr 14, 2018 · 4 comments
Assignees

Comments

@MonicaBarbir
Copy link

Hello Eyetracking R,

I am having some problems analysing time clusters. I get the following error in the script that had worked a couple days ago:
Error in .subset2(x, i, exact = exact) :
recursive indexing failed at level 2

I have recently updated Eyetracking R, and other necessary packages such as Dplyr. Since having the problem, I've gone about updating every package just in case, but to no avail.

I had had a similar problem before, but it had worked out when I downgraded Dplyr (which I believe cannot do now, because the new version of Eyetracking R requires the new version of Dplyr).

Any ideas what it may be caused by?

Thank you,
Monica

@MonicaBarbir
Copy link
Author

Re-hello EyetrackingR,

Update that might help with figuring out the source of the problem: I just ran analyse time clusters on the data set provided with eyetrackingR and I got the following error - Error in *tmp*[[jj]] : subscript out of bounds

Thanks again,
Monica

@jwdink
Copy link
Owner

jwdink commented May 21, 2018

Hey @MonicaBarbir ,

Can you provide the code for a reproducible example?

Thanks!

@respatte
Copy link

Hi everyone,

I'm having the same issue so I'm just going to add it here rather than open a new one. There are a couple issues with analyze_time_clusters:

  • treatment-coded variables can't be used with within_subj = F in analyze_time_clusters as the treatment_level argument isn't passed from make_time_cluster_data into analyze_time_clusters:
  ## Determine clusters
  LT.time_cluster_tail <- make_time_cluster_data(LT.time_course_tail,
                                                 predictor_column = "Condition",
                                                 treatment_level = "No Label",
                                                 aoi = "Tail",
                                                 test = "lmer",
                                                 threshold = 1.5,
                                                 formula = ArcSin ~ Condition +
                                                   (1 | Participant) +
                                                   (1 | Stimulus))

  ## Run analysis
  LT.time_cluster_tail.analysis <- analyze_time_clusters(LT.time_cluster_tail,
                                                         formula = ArcSin ~ Condition +
                                                           (1 | Participant) +
                                                           (1 | Stimulus),
                                                         within_subj = F,
                                                         parallel = T,
                                                         samples = 200)
# Error in get_resampled_sum_stat_btwn(data, rows_of_participants, attrs,  : 
#   task 1 failed - "
# The term 'Condition' was not found in your model.
# This can happen if your predictor is treatment-coded, in which case you should
#   specify the `treatment_level` argument.
# For example, if 'Target' is treatment coded, then it becomes 'TargetInanimate'
#   in the model, and you should set `treatment_level = 'Inanimate'`.
# The terms in the model were: '(Intercept)', 'ConditionNo Label'"
  • directly supplying the treatment level in the predictor_column name (in make_time_cluster_data) raises an error when running analyze_time_clusters (different error depending on the value given to within_subj):
  ## Determine clusters
  LT.time_cluster_tail <- make_time_cluster_data(LT.time_course_tail,
                                                 predictor_column = "ConditionNo Label",
                                                 aoi = "Tail",
                                                 test = "lmer",
                                                 threshold = 1.5,
                                                 formula = ArcSin ~ Condition +
                                                   (1 | Participant) +
                                                   (1 | Stimulus))

  ## Run analysis with within_subj = T
  LT.time_cluster_tail.analysis <- analyze_time_clusters(LT.time_cluster_tail,
                                                         formula = ArcSin ~ Condition +
                                                           (1 | Participant) +
                                                           (1 | Stimulus),
                                                         within_subj = T,
                                                         parallel = T,
                                                         samples = 200)
# Error in analyze_time_clusters.time_cluster_data(LT.time_cluster_tail,  : 
#   The column 'ConditionNo Label' not found in your data.

## Run analysis with within_subj = F
  LT.time_cluster_tail.analysis <- analyze_time_clusters(LT.time_cluster_tail,
                                                         formula = ArcSin ~ Condition +
                                                           (1 | Participant) +
                                                           (1 | Stimulus),
                                                         within_subj = F,
                                                         parallel = T)
# Error in get_resampled_sum_stat_btwn(data, rows_of_participants, attrs,  : 
#   task 1 failed - "subscript out of bounds"

I'm not totally sure I understand the use of within_subj however, so that might be the issue. In my experiment, each participant is assigned to one of two conditions, and so Condition should be a between-subject factor, hence why I want to use within_subj = F; am I wrong?

If you want my data to run the code on it, you can find it on my experiment's GitHub repository. You need to open the stats/InfantsAnalysis.R file, run the blocks LIBRARY IMPORTS and GATHER DATA, then in the block LOOKING TIME ANALYSIS: TIME COURSE you can run the DATA PREPARATION lines and finally play with the code starting line 160.

@arielleborovsky
Copy link

arielleborovsky commented Nov 14, 2018

I also encountered this issue and found that the problem had to do with specifying the make_time_sequence_data function. In my case, both "condition" and "participant" were wrongly included in the "summarize_by" argument. Moving "condition" to the "predictor_columns" argument cleared up the issue for me. Hope this helps you too!

Example in code:

WRONG:
timecourse <- make_time_sequence_data(df,
time_bin_size = 50,
aois = c("AOI1", "AOI2", "AOI3", "AOI4"),
predictor_columns = c("Sex"),
summarize_by = c("Participant", "Condition"))

CORRECT:
timecourse <- make_time_sequence_data(df,
time_bin_size = 50,
aois = c("AOI1", "AOI2", "AOI3", "AOI4"),
predictor_columns = c("Sex", "Condition"),
summarize_by = c("Participant"))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants