You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中如何将错误答案及RT移至对应列并生成新行

解决方案

问题说明

参与者完成计算任务时,所有尝试的答案及反应时(RT)被错误记录。示例中正确答案为14,参与者先回答13、12后才得出正确结果。需要将错误答案及RT移至CorrectAns和CorrectRT列并生成新行,同时确保错误记录关联对应参与者及计算任务。

示例数据

df <- data.frame(Subject = c(1, 1, 1, 2, 2),
                 Calc_ID = c(35, 35, 2, 61, 35),
                 Calculation = c("5+2+1+6", "5+2+1+6", "5+1+2+7", "3+8-5-1", "5+2+1+6"),
                 CorrectAns = c(14, 14, 15, 5, 4),
                 CorrectRT = c(28361, 28361, 5261, 7535, 9476),
                 IncorrectAns = c(13, 12, NA, NA, NA),
                 IncorrectRT = c(10038, 15689, NA, NA, NA))

方法一:使用dplyr合并行

这种方法更直观,先将错误记录转换为与正确记录相同的格式,再合并到原数据中:

library(dplyr)

# 提取错误记录,将错误答案/RT替换到Correct列
error_records <- df %>%
  filter(!is.na(IncorrectAns)) %>%
  mutate(CorrectAns = IncorrectAns,
         CorrectRT = IncorrectRT) %>%
  select(-IncorrectAns, -IncorrectRT)

# 合并原正确记录(移除错误列)和转换后的错误记录,按参与者、任务、反应时排序
final_df <- bind_rows(
  df %>% select(-IncorrectAns, -IncorrectRT),
  error_records
) %>%
  arrange(Subject, Calc_ID, CorrectRT)

print(final_df)

方法二:使用tidyr转长格式

通过将宽格式数据转换为长格式,统一处理正确和错误记录:

library(dplyr)
library(tidyr)

final_df <- df %>%
  # 将答案列转成长格式
  pivot_longer(
    cols = c(CorrectAns, IncorrectAns),
    names_to = "AnswerType",
    values_to = "Answer",
    values_drop_na = TRUE
  ) %>%
  # 将反应时列转成长格式
  pivot_longer(
    cols = c(CorrectRT, IncorrectRT),
    names_to = "RTType",
    values_to = "RT",
    values_drop_na = TRUE
  ) %>%
  # 匹配答案和反应时的类型(Correct/Incorrect)
  filter(substr(AnswerType, 1, 7) == substr(RTType, 1, 7)) %>%
  # 整理列名并排序
  select(Subject, Calc_ID, Calculation, Answer, RT) %>%
  rename(CorrectAns = Answer, CorrectRT = RT) %>%
  arrange(Subject, Calc_ID, CorrectRT)

print(final_df)

输出结果

两种方法都会得到如下结果,每个尝试(包括错误和正确)都作为独立行存在:

Subject Calc_ID Calculation CorrectAns CorrectRT
1       1      35   5+2+1+6         13      10038
2       1      35   5+2+1+6         12      15689
3       1      35   5+2+1+6         14      28361
4       1      35   5+2+1+6         14      28361
5       1       2   5+1+2+7         15       5261
6       2      61   3+8-5-1          5       7535
7       2      35   5+2+1+6          4       9476

内容的提问来源于stack exchange,提问作者Britt DV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 04:22:07