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)
}
Tags: R
Hierarchy: next