d_score 的新列

new column of d_score

我想在数据框中创建新的 d_score 列。这是我的数据和相关列的一个小例子:

    trial_id    RT  image_type  sentence_type   sent_image
    1       2486.375784   neg           neg       neg.neg
    2       1189.227724   pos           neg       neg.pos
    3       1326.685536   pos           pos       pos.pos
    4       975.075964    pos           neu       neu.pos
    5       918.369028    neg           neg       neg.neg
    6       896.206442    pos           neu       neu.pos
    7      1077.260149    neg           pos       pos.neg
    8      2245.219066    pos           neu       neu.pos
    9      1732.772871    neg           pos       pos.neg
    10      894.978814    pos           neu       neu.pos
    11      1853.728413   neg           neg       neg.neg
    12      1101.88968    pos           pos       pos.pos
    13      2349.069928   neg           neu       neu.neg
    14      1768.511491   neg           pos       pos.neg

我创建了两个基线值,它们是 image_type 列(正图像和负图像)中两个值的 RT 平均值:

    baselineRT.neu.neg<-mean(df.clean$RT[df.clean$sent_image=="neu.neg"])

这是 neg_image

的基准
    baslineRT.neu.pos<-mean(df.clean$RT[df.clean$sent_image=="neu.pos"])

这是 pos_image

的基准

现在我想创建一个新的列d_score。每个单元格中的数值将按如下方式计算:如果 image_type==pos,则应从 RT 值中减去 baselineRT.neu.pos。如果图像为负片,则应从 RT 值中减去 baselineRT.neu.neg。我开始编写脚本并卡住了,因为我是 R 的新手。

我尝试了两个方向:

     df$d_score<-ifelse(df$image_type=='neg', 
     df[,9]-baselineRT.neu.neg, df[,9]-
     baselineRT.neu.pos)

     mutate(df, d_score =ifelse...

但我不知道如何继续

有人可以指导我吗?

这有帮助吗?

# load several packages to make it easier for you
library(tidyverse)

# create a sample dataframe
df <- data.frame(
    a = rnorm(10)
    , b = 1:10
    , c = 21:30
)

# take the dataframe (df)...
df %>% # ...and then
    mutate(d = if_else(a <= 0, b + c, b - c))

# calculate b+c if a <= 0 and otherwise b-c