Giter VIP home page Giter VIP logo

rprime's Introduction

rprime

Build Status Coverage Status CRAN_Status_Badge

rprime is an R package for parsing .txt generated by E-Prime, a program for running psychological experiments.

Overview

The main workflow for rprime involves:

  1. read_eprime: reliably read in data from an Eprime log (.txt) file.
  2. FrameList: extract the text in each "LogFrame" in the file, storing each log-frame as an R list.
  3. preview_levels, preview_eprime: explore the structure of the parsed data.
  4. keep_levels, drop_levels, filter_in, filter_out: select and filter particular levels from the txt-file.
  5. to_data_frame: make a data-frame from the parsed data.

Installation

To get the current, released version from CRAN:

install.packages("rprime")

Examples

Getting data into R

Load the file with read_eprime and parse its contents with FrameList.

library("rprime")
# Read in an Eprime text file
experiment_lines <- read_eprime("data/SAILS/SAILS_001X00XS1.txt")

# Extract and parse the log-frames from the file
experiment_data <- FrameList(experiment_lines)

Exploring

In the text file, frames were distinguished by the procedure they are running as well as the their level of nesting. Get an overview of the different types of frames with preview_levels.

# There are six different kinds of frames in this file
preview_levels(experiment_data)
#> Level Counts: 
#>  Eprime.Level       Running         Procedure freq
#>             1        Header            Header    1
#>             3 PracticeBlock PracticeTrialProc   10
#>             2  PracticeList      PracticeProc    1
#>             3    TrialLists         TrialProc   70
#>             2     BlockList         BlockProc    7
#>             1          <NA>              <NA>    1

Get a preview of the data in each kind of frame with preview_frames.

preview_frames(experiment_data)
#> 
#>  Eprime.Level Running Procedure
#>             1  Header    Header
#> List of 22
#>  $ Eprime.Level       : num 1
#>  $ Eprime.LevelName   : chr "Header_"
#>  $ Eprime.Basename    : chr "SAILS_001X00XS1"
#>  $ Eprime.FrameNumber : chr "1"
#>  $ Procedure          : chr "Header"
#>  $ Running            : chr "Header"
#>  $ VersionPersist     : chr "1"
#>  $ LevelName          : chr "LogLevel10"
#>  $ Experiment         : chr "SAILS"
#>  $ SessionDate        : chr "12-01-2013"
#>  $ SessionTime        : chr "11:00:00"
#>  $ SessionTimeUtc     : chr "5:00:00 PM"
#>  $ Dilaect            : chr "Yes"
#>  $ Subject            : chr "001"
#>  $ ExpTyp             : chr "X"
#>  $ Age                : chr "00"
#>  $ Gender             : chr "X"
#>  $ Session            : chr "1"
#>  $ ChildNativeDialect : chr "S"
#>  $ RandomSeed         : chr "-676084859"
#>  $ Group              : chr "1"
#>  $ Display.RefreshRate: chr "60.004"
#>  - attr(*, "class")= chr [1:2] "EprimeFrame" "list"
#> 
#>  Eprime.Level       Running         Procedure
#>             3 PracticeBlock PracticeTrialProc
#> List of 25
#>  $ Eprime.Level            : num 3
#>  $ Eprime.LevelName        : chr "PracticeBlock_1"
#>  $ Eprime.Basename         : chr "SAILS_001X00XS1"
#>  $ Eprime.FrameNumber      : chr "2"
#>  $ Procedure               : chr "PracticeTrialProc"
#>  $ Running                 : chr "PracticeBlock"
#>  $ Practice                : chr "1"
#>  $ Sound                   : chr "LAKE1.WAV"
#>  $ Correct                 : chr "Word"
#>  $ Module                  : chr "LAKE"
#>  $ Color                   : chr "red"
#>  $ WordImage               : chr "lake"
#>  $ NonWordImage            : chr "notlake"
#>  $ PuzzleImage             : chr "up"
#>  $ Cycle                   : chr "1"
#>  $ Sample                  : chr "1"
#>  $ TrialSlide.OnsetDelay   : chr "197"
#>  $ TrialSlide.OnsetTime    : chr "899413"
#>  $ TrialSlide.DurationError: chr "-999999"
#>  $ TrialSlide.RTTime       : chr "0"
#>  $ TrialSlide.ACC          : chr "0"
#>  $ TrialSlide.RT           : chr "0"
#>  $ TrialSlide.RESP         : chr ""
#>  $ TrialSlide.CRESP        : chr ""
#>  $ Response                : chr "Word"
#>  - attr(*, "class")= chr [1:2] "EprimeFrame" "list"
#> 
#>  Eprime.Level      Running    Procedure
#>             2 PracticeList PracticeProc
#> List of 11
#>  $ Eprime.Level      : num 2
#>  $ Eprime.LevelName  : chr "PracticeList_1"
#>  $ Eprime.Basename   : chr "SAILS_001X00XS1"
#>  $ Eprime.FrameNumber: chr "12"
#>  $ Procedure         : chr "PracticeProc"
#>  $ Running           : chr "PracticeList"
#>  $ Cycle             : chr "1"
#>  $ Sample            : chr "1"
#>  $ PuzzleMovie       : chr "up"
#>  $ TrainingNonWord   : chr "notlake"
#>  $ TrainingWord      : chr "lake"
#>  - attr(*, "class")= chr [1:2] "EprimeFrame" "list"
#> 
#>  Eprime.Level    Running Procedure
#>             3 TrialLists TrialProc
#> List of 25
#>  $ Eprime.Level            : num 3
#>  $ Eprime.LevelName        : chr "TrialLists_1"
#>  $ Eprime.Basename         : chr "SAILS_001X00XS1"
#>  $ Eprime.FrameNumber      : chr "13"
#>  $ Procedure               : chr "TrialProc"
#>  $ Running                 : chr "TrialLists"
#>  $ Sound                   : chr "LAKE23B.WAV"
#>  $ Correct                 : chr "Word"
#>  $ LakeLevel1              : chr "8"
#>  $ Module                  : chr "LAKE"
#>  $ Color                   : chr "blue"
#>  $ WordImage               : chr "lake"
#>  $ NonWordImage            : chr "notlake"
#>  $ PuzzleImage             : chr "butterfly"
#>  $ TrialSlide.OnsetDelay   : chr "119"
#>  $ TrialSlide.OnsetTime    : chr "1023939"
#>  $ TrialSlide.DurationError: chr "-999999"
#>  $ TrialSlide.RTTime       : chr "0"
#>  $ TrialSlide.ACC          : chr "0"
#>  $ TrialSlide.RT           : chr "0"
#>  $ TrialSlide.RESP         : chr ""
#>  $ TrialSlide.CRESP        : chr ""
#>  $ Response                : chr "Word"
#>  $ Cycle                   : chr "1"
#>  $ Sample                  : chr "1"
#>  - attr(*, "class")= chr [1:2] "EprimeFrame" "list"
#> 
#>  Eprime.Level   Running Procedure
#>             2 BlockList BlockProc
#> List of 11
#>  $ Eprime.Level      : num 2
#>  $ Eprime.LevelName  : chr "BlockList_1"
#>  $ Eprime.Basename   : chr "SAILS_001X00XS1"
#>  $ Eprime.FrameNumber: chr "23"
#>  $ Procedure         : chr "BlockProc"
#>  $ Running           : chr "BlockList"
#>  $ PuzzleMovie       : chr "butterfly"
#>  $ TrainingNonWord   : chr "notlake"
#>  $ TrainingWord      : chr "lake"
#>  $ Cycle             : chr "1"
#>  $ Sample            : chr "1"
#>  - attr(*, "class")= chr [1:2] "EprimeFrame" "list"
#> 
#>  Eprime.Level Running Procedure
#>             1    <NA>      <NA>
#> List of 20
#>  $ Eprime.Level       : num 1
#>  $ Eprime.LevelName   : logi NA
#>  $ Eprime.Basename    : chr "SAILS_001X00XS1"
#>  $ Eprime.FrameNumber : chr "90"
#>  $ Procedure          : logi NA
#>  $ Running            : logi NA
#>  $ Experiment         : chr "SAILS"
#>  $ SessionDate        : chr "12-01-2013"
#>  $ SessionTime        : chr "11:00:00"
#>  $ SessionTimeUtc     : chr "5:00:00 PM"
#>  $ Dilaect            : chr "Yes"
#>  $ Subject            : chr "001"
#>  $ ExpTyp             : chr "X"
#>  $ Age                : chr "00"
#>  $ Gender             : chr "X"
#>  $ Session            : chr "1"
#>  $ ChildNativeDialect : chr "S"
#>  $ RandomSeed         : chr "-676084859"
#>  $ Group              : chr "1"
#>  $ Display.RefreshRate: chr "60.004"
#>  - attr(*, "class")= chr [1:2] "EprimeFrame" "list"

preview_eprime (not demonstrated here) does both kinds of previews (levels and frames).

Filtering

Use keep_levels and drop_levels to filter frames according to nesting level.

# Filter (out) by depth of nesting
not_level_1 <- drop_levels(experiment_data, 1)
preview_levels(not_level_1)
#> Level Counts: 
#>  Eprime.Level       Running         Procedure freq
#>             3 PracticeBlock PracticeTrialProc   10
#>             2  PracticeList      PracticeProc    1
#>             3    TrialLists         TrialProc   70
#>             2     BlockList         BlockProc    7

# Filter (in) by depth of nesting
just_level_3 <- keep_levels(experiment_data, 3)
preview_levels(just_level_3)
#> Level Counts: 
#>  Eprime.Level       Running         Procedure freq
#>             3 PracticeBlock PracticeTrialProc   10
#>             3    TrialLists         TrialProc   70

Use filter_in and filter_out to filter frames using attribute values. Use repeated filtering statements to drill down into the list of frames.

# Filter (out) by attribute values
no_header <- filter_out(experiment_data, "Running", values = "Header")
preview_levels(no_header)
#> Level Counts: 
#>  Eprime.Level       Running         Procedure freq
#>             3 PracticeBlock PracticeTrialProc   10
#>             2  PracticeList      PracticeProc    1
#>             3    TrialLists         TrialProc   70
#>             2     BlockList         BlockProc    7
#>             1          <NA>              <NA>    1

# Filter (in) by attribute values
not_practice <- filter_in(experiment_data, "Running", "TrialLists")
preview_levels(not_practice)
#> Level Counts: 
#>  Eprime.Level    Running Procedure freq
#>             3 TrialLists TrialProc   70

# Drill down further into the trials by filtering again
sue_trials <- filter_in(not_practice, "Module", "SUE")
preview_eprime(sue_trials)
#> Level Counts: 
#>  Eprime.Level    Running Procedure freq
#>             3 TrialLists TrialProc   30
#> 
#>  Eprime.Level    Running Procedure
#>             3 TrialLists TrialProc
#> List of 25
#>  $ Eprime.Level            : num 3
#>  $ Eprime.LevelName        : chr "TrialLists_5"
#>  $ Eprime.Basename         : chr "SAILS_001X00XS1"
#>  $ Eprime.FrameNumber      : chr "57"
#>  $ Procedure               : chr "TrialProc"
#>  $ Running                 : chr "TrialLists"
#>  $ Sound                   : chr "SUE4.WAV"
#>  $ Correct                 : chr "Word"
#>  $ SueLevel1               : chr "10"
#>  $ Module                  : chr "SUE"
#>  $ Color                   : chr "blue"
#>  $ WordImage               : chr "sue"
#>  $ NonWordImage            : chr "notsue"
#>  $ PuzzleImage             : chr "madagascar"
#>  $ TrialSlide.OnsetDelay   : chr "127"
#>  $ TrialSlide.OnsetTime    : chr "1360767"
#>  $ TrialSlide.DurationError: chr "-999999"
#>  $ TrialSlide.RTTime       : chr "0"
#>  $ TrialSlide.ACC          : chr "0"
#>  $ TrialSlide.RT           : chr "0"
#>  $ TrialSlide.RESP         : chr ""
#>  $ TrialSlide.CRESP        : chr ""
#>  $ Response                : chr "Word"
#>  $ Cycle                   : chr "1"
#>  $ Sample                  : chr "41"
#>  - attr(*, "class")= chr [1:2] "EprimeFrame" "list"

Exporting

Convert to a dataframe with to_dataframe. Attribute names in the log-frames become column names in the dataframe.

# Export to dataframe
sue_trials_df <- to_data_frame(sue_trials)
str(sue_trials_df)
#> 'data.frame':    30 obs. of  27 variables:
#>  $ Eprime.Level            : num  3 3 3 3 3 ...
#>  $ Eprime.LevelName        : chr  "TrialLists_5" "TrialLists_5" ...
#>  $ Eprime.Basename         : chr  "SAILS_001X00XS1" "SAILS_001X00XS1" ...
#>  $ Eprime.FrameNumber      : chr  "57" "58" ...
#>  $ Procedure               : chr  "TrialProc" "TrialProc" ...
#>  $ Running                 : chr  "TrialLists" "TrialLists" ...
#>  $ Sound                   : chr  "SUE4.WAV" "SUE15.WAV" ...
#>  $ Correct                 : chr  "Word" "NotWord" ...
#>  $ SueLevel1               : chr  "10" "2" ...
#>  $ Module                  : chr  "SUE" "SUE" ...
#>  $ Color                   : chr  "blue" "blue" ...
#>  $ WordImage               : chr  "sue" "sue" ...
#>  $ NonWordImage            : chr  "notsue" "notsue" ...
#>  $ PuzzleImage             : chr  "madagascar" "madagascar" ...
#>  $ TrialSlide.OnsetDelay   : chr  "127" "98" ...
#>  $ TrialSlide.OnsetTime    : chr  "1360767" "1364450" ...
#>  $ TrialSlide.DurationError: chr  "-999999" "-999999" ...
#>  $ TrialSlide.RTTime       : chr  "0" "0" ...
#>  $ TrialSlide.ACC          : chr  "0" "0" ...
#>  $ TrialSlide.RT           : chr  "0" "0" ...
#>  $ TrialSlide.RESP         : chr  "" "" ...
#>  $ TrialSlide.CRESP        : chr  "" "" ...
#>  $ Response                : chr  "Word" "NotWord" ...
#>  $ Cycle                   : chr  "1" "1" ...
#>  $ Sample                  : chr  "41" "42" ...
#>  $ SueLevel2               : chr  NA NA ...
#>  $ SueLevel3               : chr  NA NA ...

# Don't need every column
columns_to_keep <- c("Eprime.Basename", "Module", "Sample", 
                     "Correct", "Response")
sue_trials_df <- sue_trials_df[columns_to_keep]
head(sue_trials_df)
#>   Eprime.Basename Module Sample Correct Response
#> 1 SAILS_001X00XS1    SUE     41    Word     Word
#> 2 SAILS_001X00XS1    SUE     42 NotWord  NotWord
#> 3 SAILS_001X00XS1    SUE     43 NotWord     Word
#> 4 SAILS_001X00XS1    SUE     44    Word     Word
#> 5 SAILS_001X00XS1    SUE     45 NotWord  NotWord
#> 6 SAILS_001X00XS1    SUE     46    Word     Word

Note: rprime thinks that all the values in the final dataframe are character values. You can use type_convert in the readr package to correct the column types:

# Right now the sample numbers are stored as character values
str(sue_trials_df)
#> 'data.frame':    30 obs. of  5 variables:
#>  $ Eprime.Basename: chr  "SAILS_001X00XS1" "SAILS_001X00XS1" ...
#>  $ Module         : chr  "SUE" "SUE" ...
#>  $ Sample         : chr  "41" "42" ...
#>  $ Correct        : chr  "Word" "NotWord" ...
#>  $ Response       : chr  "Word" "NotWord" ...

library("readr")
sue_trials_df <- type_convert(sue_trials_df)
# Now, they are stored as integers...
str(sue_trials_df)
#> 'data.frame':    30 obs. of  5 variables:
#>  $ Eprime.Basename: chr  "SAILS_001X00XS1" "SAILS_001X00XS1" ...
#>  $ Module         : chr  "SUE" "SUE" ...
#>  $ Sample         : int  41 42 43 44 45 ...
#>  $ Correct        : chr  "Word" "NotWord" ...
#>  $ Response       : chr  "Word" "NotWord" ...

rprime's People

Contributors

tjmahr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

rprime's Issues

Multiple txt files possible?

Hello,
I came across your package a while ago, but until recently I didnt really need to use it. Now that I use linux only eprime edat files are the only reason I keep a windows VM.
Could you please tell me (preferably step by step) how one can approach a directory with multiple files (1 file per subject as in regular edats) and convert all of them to a data frame?

as.data.frame

> eprime_frame <- as.data.frame(keep_levels(eprime2, 2))

 Error in as.data.frame.list(x, stringsAsFactors = FALSE, ...) : 
  formal argument "stringsAsFactors" matched by multiple actual arguments 

8 as.data.frame.list(x, stringsAsFactors = FALSE, ...) at to_data_frame.R#33
7 as.data.frame.EprimeFrame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) 
6 as.data.frame(x[[i]], optional = TRUE, stringsAsFactors = stringsAsFactors) 
5 data.frame(structure(list(Eprime.Level = 2, Eprime.LevelName = "BlockList_1", ... 
4 eval(expr, envir, enclos) 
3 eval(as.call(c(expression(data.frame), x, check.names = !optional, 
    stringsAsFactors = stringsAsFactors))) 
2 as.data.frame.list(keep_levels(eprime2, 2)) 
1 as.data.frame(keep_levels(eprime2, 2)) 

remove clock filtering from listify

listify <- function(colon_sep_xs) {
  colon_sep_xs <- Filter(is_row, colon_sep_xs)
  colon_sep_xs <- Filter(function(x) str_length(x) < 400, colon_sep_xs)

listify excludes lines longer than 400 characters to implicitly remove the clock xml info. Make this an option in a user facing function

reference for file format

Prof Ripley said in the package submission on 5/29/2015

On CRAN now, but in future give a URL for the Eprime file format in the Description field.

I don't think any formal documentation exists but I can dig deeper into this.

DESCRIPTION description

The mandatory ‘Description’ field should give a comprehensive description of what the package does. One can use several (complete) sentences, but only one paragraph. It should be intelligible to all the intended readership (e.g. for a CRAN package to all CRAN users). It is good practice not to start with the package name, ‘This package’ or similar. As with the ‘Title’ field, double quotes should be used for quotations (including titles of books and articles), and single quotes for non-English usage, including names of other packages and external software. This field should also be used for explaining the package name if necessary.

http://cran.r-project.org/doc/manuals/r-release/R-exts.html

An update to stringi 1.5.3 breaks rprime

Apologies, but an updated version of https://github.com/gagolews/stringi/ unfortunately breaks your package's checks, can you fix the following issues in the next release?

Change-log: https://cran.r-project.org/web/packages/stringi/NEWS

Package: rprime
Check: re-building of vignette outputs
New result: WARNING
  Error(s) in re-building vignettes:
    ...
  --- re-building ‘multiple-files.Rmd’ using rmarkdown
  Quitting from lines 64-65 (multiple-files.Rmd) 
  Error: processing vignette 'multiple-files.Rmd' failed with diagnostics:
  embedded nul in string: ‘��*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0S\0A\0I\0L\0S\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \01\02\0-\00\01\0-\02\00\01\03\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \01\01\0:\00\
 00\
  --- failed re-building ‘multiple-files.Rmd’
  
  --- re-building ‘parsing-summary.Rmd’ using rmarkdown
  Quitting from lines 150-153 (parsing-summary.Rmd) 
  Error: processing vignette 'parsing-summary.Rmd' failed with diagnostics:
  embedded nul in string: ‘��*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0S\0A\0E\0_\0M\0i\0n\0i\0m\0a\0l\0P\0a\0i\0r\0D\0i\0s\0c\0r\0i\0m\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\07\0-\01\00\0-\02\00\01\03\0\r\0\n\
 0S\
  --- failed re-building ‘parsing-summary.Rmd’
  
  --- re-building ‘quick-start-demo.Rmd’ using rmarkdown
  Quitting from lines 46-51 (quick-start-demo.Rmd) 
  Error: processing vignette 'quick-start-demo.Rmd' failed with diagnostics:
  embedded nul in string: ‘��*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0S\0A\0I\0L\0S\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \01\02\0-\00\01\0-\02\00\01\03\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \01\01\0:\00\
 00\
  --- failed re-building ‘quick-start-demo.Rmd’
  
  SUMMARY: processing the following files failed:
    ‘multiple-files.Rmd’ ‘parsing-summary.Rmd’ ‘quick-start-demo.Rmd’
  
  Error: Vignette re-building failed.
  Execution halted

Package: rprime
Check: tests
New result: ERROR
    Running ‘test-all.R’ [2s/2s]
  Running the tests in ‘tests/test-all.R’ failed.
  Complete output:
    > library("testthat")
    > test_check("rprime")
    Loading required package: rprime
    ── 1. Error: filter in/out (@test-filter.R#7)  ─────────────────────────────────
    embedded nul in string: '��*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0S\0A\0E\0_\0M\0i\0n\0i\0m\0a\0l\0P\0a\0i\0r\0D\0i\0s\0c\0r\0i\0m\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\07\0-\01\00\0-\02\00\01\03\0\r\0\n\
 0S\0e
    Backtrace:
     1. rprime::read_eprime(good_file)
     2. stringi::stri_read_lines(filename)
     3. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 2. Error: keep/drop levels (@test-filter.R#39)  ─────────────────────────────
    embedded nul in string: '��*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0S\0A\0E\0_\0M\0i\0n\0i\0m\0a\0l\0P\0a\0i\0r\0D\0i\0s\0c\0r\0i\0m\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\07\0-\01\00\0-\02\00\01\03\0\r\0\n\
 0S\0e
    Backtrace:
     1. rprime::read_eprime(good_file)
     2. stringi::stri_read_lines(filename)
     3. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 3. Error: Load well-formed data (@test-load.R#18)  ──────────────────────────
    embedded nul in string: '��*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0S\0A\0E\0_\0M\0i\0n\0i\0m\0a\0l\0P\0a\0i\0r\0D\0i\0s\0c\0r\0i\0m\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\07\0-\01\00\0-\02\00\01\03\0\r\0\n\
 0S\0e
    Backtrace:
     1. rprime::read_eprime(good_file, remove_clock = FALSE)
     2. stringi::stri_read_lines(filename)
     3. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 4. Error: load file with unexpected encoding (@test-load.R#34)  ─────────────
    embedded nul in string: '*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0B\0l\0e\0n\0d\0i\0n\0g\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\05\0-\00\06\0-\02\00\01\04\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \01\00\0:\
 03\08
    Backtrace:
     1. testthat::evaluate_promise(read_eprime(bad_encoding))
     6. rprime::read_eprime(bad_encoding)
     7. stringi::stri_read_lines(filename)
     8. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 5. Error: load file from a crashed experiment (@test-load.R#45)  ────────────
    embedded nul in string: '��*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0M\0P\0_\0B\0l\0o\0c\0k\01\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\01\0-\01\08\0-\02\00\01\03\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \
 01\01
    Backtrace:
     1. testthat::evaluate_promise(read_eprime(crashed_experiment))
     6. rprime::read_eprime(crashed_experiment)
     7. stringi::stri_read_lines(filename)
     8. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 6. Error: preview levels (@test-print.R#7)  ─────────────────────────────────
    embedded nul in string: '*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0B\0l\0e\0n\0d\0i\0n\0g\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\05\0-\00\06\0-\02\00\01\04\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \01\00\0:\
 03\08
    Backtrace:
     1. rprime::read_eprime(good_file)
     2. stringi::stri_read_lines(filename)
     3. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 7. Error: preview frames (@test-print.R#17)  ────────────────────────────────
    embedded nul in string: '*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0B\0l\0e\0n\0d\0i\0n\0g\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\05\0-\00\06\0-\02\00\01\04\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \01\00\0:\
 03\08
    Backtrace:
     1. rprime::read_eprime(good_file)
     2. stringi::stri_read_lines(filename)
     3. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 8. Error: preview eprime combines level and frame previews (@test-print.R#27)
    embedded nul in string: '*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0B\0l\0e\0n\0d\0i\0n\0g\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\05\0-\00\06\0-\02\00\01\04\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \01\00\0:\
 03\08
    Backtrace:
     1. rprime::read_eprime(good_file)
     2. stringi::stri_read_lines(filename)
     3. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 9. Error: print an EprimeFrame (@test-print.R#38)  ──────────────────────────
    embedded nul in string: '*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0B\0l\0e\0n\0d\0i\0n\0g\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\05\0-\00\06\0-\02\00\01\04\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \01\00\0:\
 03\08
    Backtrace:
     1. rprime::read_eprime(good_file)
     2. stringi::stri_read_lines(filename)
     3. stringi::stri_encode(txt, encoding, "UTF-8")
    
    ── 10. Error: print a FrameList (@test-print.R#53)  ────────────────────────────
    embedded nul in string: '*\0*\0*\0 \0H\0e\0a\0d\0e\0r\0 \0S\0t\0a\0r\0t\0 \0*\0*\0*\0\r\0\n\0V\0e\0r\0s\0i\0o\0n\0P\0e\0r\0s\0i\0s\0t\0:\0 \01\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0e\0s\0s\0i\0o\0n\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0B\0l\0o\0c\0k\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0S\0u\0b\0T\0r\0i\0a\0l\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\05\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\06\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\07\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\08\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\09\0\r\0\n\0L\0e\0v\0e\0l\0N\0a\0m\0e\0:\0 \0L\0o\0g\0L\0e\0v\0e\0l\01\00\0\r\0\n\0E\0x\0p\0e\0r\0i\0m\0e\0n\0t\0:\0 \0B\0l\0e\0n\0d\0i\0n\0g\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0D\0a\0t\0e\0:\0 \00\05\0-\00\06\0-\02\00\01\04\0\r\0\n\0S\0e\0s\0s\0i\0o\0n\0T\0i\0m\0e\0:\0 \01\00\0:\
 03\08
    Backtrace:
     1. rprime::read_eprime(good_file)
     2. stringi::stri_read_lines(filename)
     3. stringi::stri_encode(txt, encoding, "UTF-8")
    
    â•â• testthat results  â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
    [ OK: 8 | SKIPPED: 0 | WARNINGS: 6 | FAILED: 10 ]
    1.  Error: filter in/out (@test-filter.R#7) 
    2.  Error: keep/drop levels (@test-filter.R#39) 
    3.  Error: Load well-formed data (@test-load.R#18) 
    4.  Error: load file with unexpected encoding (@test-load.R#34) 
    5.  Error: load file from a crashed experiment (@test-load.R#45) 
    6.  Error: preview levels (@test-print.R#7) 
    7.  Error: preview frames (@test-print.R#17) 
    8.  Error: preview eprime combines level and frame previews (@test-print.R#27) 
    9.  Error: print an EprimeFrame (@test-print.R#38) 
    10. Error: print a FrameList (@test-print.R#53) 
    
    Error: testthat unit tests failed
    Execution halted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.