Please see manuscript for a long description of the following data.
We will load the example data, and you can use the ?
with
the dataset name to learn more about the data.
library(lrd)
data("sentence_data")
head(sentence_data)
#> Sub.ID Trial.ID Sentence
#> 1 1 1 This is a sentence.
#> 2 1 2 Woo more sentences!
#> 3 1 3 This is thing that the participant typed.
#> 4 1 4 This is another example sentence.
#> 5 1 5 Okay this is the final thing that they typed.
#> 6 2 1 This is a sentence.
#> Response Condition
#> 1 This is a sentence a
#> 2 Woo more sentences! a
#> 3 This is the thing that the participant typed. a
#> 4 This is another example sentence. a
#> 5 Okay this is the final thing they typed. a
#> 6 This is sentence. b
#?sentence_data
Scoring in lrd
is case sensitive, so we will use
tolower()
to lower case all correct answers and participant
answers.
You should define the following:
Note that the answer key can be in a separate dataframe, use
something like answer_key$answer
for the key argument and
answer_key$id_num
for the trial number. Fill in
answer_key
with your dataframe name and the column name for
those columns after the $
.
sentence_ouptut <-
prop_correct_sentence(data = sentence_data,
responses = "Response",
key = "Sentence",
key.trial = "Trial.ID",
id = "Sub.ID",
id.trial = "Trial.ID",
cutoff = 1,
flag = TRUE,
group.by = "Condition",
token.split = " ")
str(sentence_ouptut)
#> List of 3
#> $ DF_Scored :'data.frame': 30 obs. of 11 variables:
#> ..$ Trial.ID : int [1:30] 1 1 1 1 1 1 2 2 2 2 ...
#> ..$ Sub.ID : int [1:30] 1 2 3 4 5 6 2 3 4 1 ...
#> ..$ Sentence : chr [1:30] "this is a sentence." "this is a sentence." "this is a sentence." "this is a sentence." ...
#> ..$ Responses : chr [1:30] "this is a sentence" "this is sentence" "this is a sentence" "this is a sentence" ...
#> ..$ Condition : chr [1:30] "a" "b" "a" "b" ...
#> ..$ Answer : chr [1:30] "this is a sentence" "this is a sentence" "this is a sentence" "this is a sentence" ...
#> ..$ Proportion.Match: num [1:30] 1 0.75 1 1 1 ...
#> ..$ Shared.Items : chr [1:30] "this is a sentence" "this is sentence" "this is a sentence" "this is a sentence" ...
#> ..$ Corrected.Items : chr [1:30] NA NA NA NA ...
#> ..$ Omitted.Items : chr [1:30] NA "a" NA NA ...
#> ..$ Extra.Items : chr [1:30] NA NA NA NA ...
#> $ DF_Participant:'data.frame': 6 obs. of 5 variables:
#> ..$ Condition : chr [1:6] "a" "b" "a" "b" ...
#> ..$ Sub.ID : int [1:6] 1 2 3 4 5 6
#> ..$ Proportion.Correct : num [1:6] 0.978 0.802 0.832 0.646 0.599 ...
#> ..$ Z.Score.Group : num [1:6] 0.916 1.155 0.151 -0.577 -1.067 ...
#> ..$ Z.Score.Participant: num [1:6, 1] 1.564 0.355 0.559 -0.72 -1.039 ...
#> .. ..- attr(*, "scaled:center")= num 0.75
#> .. ..- attr(*, "scaled:scale")= num 0.145
#> $ DF_Group :'data.frame': 2 obs. of 4 variables:
#> ..$ Condition: chr [1:2] "a" "b"
#> ..$ Mean : num [1:2] 0.803 0.698
#> ..$ SD : num [1:2] 0.1908 0.0903
#> ..$ N : int [1:2] 3 3
We can use DF_Scored
to see the original dataframe with
our new scoring columns - also to check if our answer key and
participant answers matched up correctly! First, each sentence is
stripped of punctuation and extra white space within the function. The
total number of tokens, as split by token.split
are tallied
for calculating Proportion.Match.
Then, the tokens are
matched using the Levenshtein distance indicated in cutoff
,
as with the cued and free recall functions. The key difference in this
function is how each type of token is handled. The
Shared.Items
column includes all the items that were
matched completely with the original answer (i.e., a cutoff
of 0). The tokens not matched in the participant answer are then
compared to the tokens not matched from the answer key to create the
Corrected.Items
column. This column indicates answers that
were misspelled but within the cutoff score and were matched to the
answer key (i.e., “th” for the, “ths” for this). The non-matched items
are then separated into Omitted.Items
(i.e., items in the
answer key not found in the participant answer), and
Extra.Items
(i.e., items found in the participant answer
that were not found in the answer key). The
Proportion.Match
is calculated by summing the number of
tokens matched in Shared.Items
and
Corrected.Items
and dividing by the total number of tokens
in the answer key. The DF_Participant
can be used to view a
participant level summary of the data. Last, if a grouping variable is
used, we can use DF_Group
to see that output.
#Overall
sentence_ouptut$DF_Scored
#> Trial.ID Sub.ID Sentence
#> 1 1 1 this is a sentence.
#> 2 1 2 this is a sentence.
#> 3 1 3 this is a sentence.
#> 4 1 4 this is a sentence.
#> 5 1 5 this is a sentence.
#> 6 1 6 this is a sentence.
#> 7 2 2 woo more sentences!
#> 8 2 3 woo more sentences!
#> 9 2 4 woo more sentences!
#> 10 2 1 woo more sentences!
#> 11 2 6 woo more sentences!
#> 12 2 5 woo more sentences!
#> 13 3 2 this is thing that the participant typed.
#> 14 3 3 this is thing that the participant typed.
#> 15 3 1 this is thing that the participant typed.
#> 16 3 6 this is thing that the participant typed.
#> 17 3 4 this is thing that the participant typed.
#> 18 3 5 this is thing that the participant typed.
#> 19 4 2 this is another example sentence.
#> 20 4 1 this is another example sentence.
#> 21 4 6 this is another example sentence.
#> 22 4 3 this is another example sentence.
#> 23 4 4 this is another example sentence.
#> 24 4 5 this is another example sentence.
#> 25 5 1 okay this is the final thing that they typed.
#> 26 5 2 okay this is the final thing that they typed.
#> 27 5 3 okay this is the final thing that they typed.
#> 28 5 4 okay this is the final thing that they typed.
#> 29 5 5 okay this is the final thing that they typed.
#> 30 5 6 okay this is the final thing that they typed.
#> Responses Condition
#> 1 this is a sentence a
#> 2 this is sentence b
#> 3 this is a sentence a
#> 4 this is a sentence b
#> 5 this thing is a sentence a
#> 6 this is a sentence b
#> 7 woo more sentences b
#> 8 woo more sentecnes a
#> 9 more sentences b
#> 10 woo more sentences a
#> 11 more sentences b
#> 12 woohoo more sentences a
#> 13 this is the thing b
#> 14 the participant typed this thing a
#> 15 this is the thing that the participant typed a
#> 16 this thing was typed b
#> 17 this thing was typed b
#> 18 this sentence was typed a
#> 19 this is an extra example sentence b
#> 20 this is another example sentence a
#> 21 this is anothr example b
#> 22 tis is another xample sentence a
#> 23 this is anothr example b
#> 24 this is another one a
#> 25 okay this is the final thing they typed a
#> 26 okay this is the final thing they typed b
#> 27 okay this is the last thing they typed a
#> 28 ok this is the last one b
#> 29 this is th final one a
#> 30 ok this is the last one b
#> Answer Proportion.Match
#> 1 this is a sentence 1.0000000
#> 2 this is a sentence 0.7500000
#> 3 this is a sentence 1.0000000
#> 4 this is a sentence 1.0000000
#> 5 this is a sentence 1.0000000
#> 6 this is a sentence 1.0000000
#> 7 woo more sentences 1.0000000
#> 8 woo more sentences 0.6666667
#> 9 woo more sentences 0.6666667
#> 10 woo more sentences 1.0000000
#> 11 woo more sentences 0.6666667
#> 12 woo more sentences 0.6666667
#> 13 this is thing that the participant typed 0.5714286
#> 14 this is thing that the participant typed 0.7142857
#> 15 this is thing that the participant typed 1.0000000
#> 16 this is thing that the participant typed 0.4285714
#> 17 this is thing that the participant typed 0.4285714
#> 18 this is thing that the participant typed 0.2857143
#> 19 this is another example sentence 0.8000000
#> 20 this is another example sentence 1.0000000
#> 21 this is another example sentence 0.8000000
#> 22 this is another example sentence 1.0000000
#> 23 this is another example sentence 0.8000000
#> 24 this is another example sentence 0.6000000
#> 25 okay this is the final thing that they typed 0.8888889
#> 26 okay this is the final thing that they typed 0.8888889
#> 27 okay this is the final thing that they typed 0.7777778
#> 28 okay this is the final thing that they typed 0.3333333
#> 29 okay this is the final thing that they typed 0.4444444
#> 30 okay this is the final thing that they typed 0.3333333
#> Shared.Items Corrected.Items
#> 1 this is a sentence <NA>
#> 2 this is sentence <NA>
#> 3 this is a sentence <NA>
#> 4 this is a sentence <NA>
#> 5 this is a sentence <NA>
#> 6 this is a sentence <NA>
#> 7 woo more sentences <NA>
#> 8 woo more <NA>
#> 9 more sentences <NA>
#> 10 woo more sentences <NA>
#> 11 more sentences <NA>
#> 12 more sentences <NA>
#> 13 this is thing the <NA>
#> 14 this thing the participant typed <NA>
#> 15 this is thing that the participant typed <NA>
#> 16 this thing typed <NA>
#> 17 this thing typed <NA>
#> 18 this typed <NA>
#> 19 this is example sentence <NA>
#> 20 this is another example sentence <NA>
#> 21 this is example anothr
#> 22 is another sentence tis xample
#> 23 this is example anothr
#> 24 this is another <NA>
#> 25 okay this is the final thing they typed <NA>
#> 26 okay this is the final thing they typed <NA>
#> 27 okay this is the thing they typed <NA>
#> 28 this is the <NA>
#> 29 this is final th
#> 30 this is the <NA>
#> Omitted.Items Extra.Items
#> 1 <NA> <NA>
#> 2 a <NA>
#> 3 <NA> <NA>
#> 4 <NA> <NA>
#> 5 <NA> thing
#> 6 <NA> <NA>
#> 7 <NA> <NA>
#> 8 sentences sentecnes
#> 9 woo <NA>
#> 10 <NA> <NA>
#> 11 woo <NA>
#> 12 woo woohoo
#> 13 that participant typed <NA>
#> 14 is that <NA>
#> 15 <NA> <NA>
#> 16 is that the participant was
#> 17 is that the participant was
#> 18 is thing that the participant sentence was
#> 19 another an extra
#> 20 <NA> <NA>
#> 21 sentence <NA>
#> 22 <NA> <NA>
#> 23 sentence <NA>
#> 24 example sentence one
#> 25 that <NA>
#> 26 that <NA>
#> 27 final that last
#> 28 okay final thing that they typed ok last one
#> 29 okay thing that typed one
#> 30 okay final thing that they typed ok last one
#Participant
sentence_ouptut$DF_Participant
#> Condition Sub.ID Proportion.Correct Z.Score.Group Z.Score.Participant
#> 1 a 1 0.9777778 0.9160221 1.5637499
#> 2 b 2 0.8020635 1.1547005 0.3553233
#> 3 a 3 0.8317460 0.1508220 0.5594568
#> 4 b 4 0.6457143 -0.5773503 -0.7199254
#> 5 a 5 0.5993651 -1.0668441 -1.0386793
#> 6 b 6 0.6457143 -0.5773503 -0.7199254
#Groups
sentence_ouptut$DF_Group
#> Condition Mean SD N
#> 1 a 0.8029630 0.19084127 3
#> 2 b 0.6978307 0.09026826 3