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
我想在数据框中创建新的 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