Calculating d-prime in R
Posted by Pedro on August 23, 2008 at 11:04 PM
This function takes a data frame data.frame and returns a d-prime score for each unique entry in the subject column of the data frame. Note that the function will return Inf or -Inf if any value in Hrate or Frate is 1 or 0.
dprime = function(data.frame) {
yes = subset(data.frame, resp=="Y")
no = subset(data.frame, resp=="N")
hit = subset(data.frame, resp=="Y" & acc == 1)
falsealarm = subset(data.frame, resp=="N" & acc == 0)
Hrate = xtabs(~subject,data=hit)/xtabs(~subject,data=yes)
Frate = xtabs(~subject,data=falsealarm)/xtabs(~subject,data=no)
dprime_score = qnorm(Hrate) - qnorm(Frate)
return(dprime_score)
}