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

R语言量表反向计分代码运行失败及t检验问题求助

R语言调研数据处理修正指南(反向计分+独立样本t检验)

代码错误梳理

  • if_else语法完全错误:if_else仅接受3个参数(条件、满足条件的返回值、不满足的返回值),你写了多个返回值,且1=5是赋值语句而非数值,完全不符合语法规则。
  • 管道操作未赋值:前几轮mig |> mutate(...)未将结果存回mig,所有修改都未生效,仅最后用mig <- mig |> ...的recode部分实际起作用。
  • 添加索引时的语法错误:mig<- mig后直接换行写mutate,缺少管道|>或正确赋值逻辑,导致指数未成功添加到数据集。
  • t检验类型错误:你需要的是独立样本t检验,但代码中用了paired = TRUE(配对t检验参数),完全不符合需求;且独立样本t检验更适合用公式形式(因变量~分组变量)而非直接传两个向量。
  • 反向计分可简化:无需逐个recode,利用6 - 原始得分即可实现1↔5、2↔4的转换(6-1=5,6-2=4,6-3=3),完美匹配你的反向计分规则。

修正后的完整代码

library(tidyverse)
library(report)

# 读取数据
mig <- readxl::read_excel("data/data_ExperimentMigration2024_2024-07-04_20-34.xlsx")

# 反向计分:用6-原始值实现简洁转换
mig <- mig |>
  mutate(
    # 对反向表述题目进行计分转换
    ME03_01 = 6 - ME03_01,
    ME03_02 = 6 - ME03_02,
    ME03_04 = 6 - ME03_04,
    ME03_09 = 6 - ME03_09
  )

# 构建指数并添加到数据集
mig <- mig |>
  rowwise() |>
  mutate(einst_index = mean(c(ME03_01, ME03_02, ME03_03, ME03_04, ME03_05, ME03_07, ME03_09, ME03_10), na.rm = TRUE)) |>
  ungroup()

# 计算指数的均值和标准差
mig |>
  summarise(
    均值 = mean(einst_index, na.rm = TRUE),
    标准差 = sd(einst_index, na.rm = TRUE)
  )

# 独立样本t检验:假设EM01/EM02/EM03是分组变量(如因子或0/1编码)
# 负向刺激组对比
t.test(einst_index ~ EM01, data = mig) |>
  report_table()

# 正向刺激组对比
t.test(einst_index ~ EM02, data = mig) |>
  report_table()

# 中性刺激组对比
t.test(einst_index ~ EM03, data = mig) |>
  report_table()

额外说明

  1. 反向计分:确认ME03_01/02/04/09确实为反向表述题目后再使用6-值转换,其他反向题可同理添加。
  2. 指数构建:rowwise()+mean()的写法更贴合tidyverse风格,逻辑更清晰。
  3. t检验:确保EM01/EM02/EM03是分组变量(如1=接受对应刺激,0=未接受),若为字符型变量,需先转为因子factor(EM01)再进行检验。

内容的提问来源于stack exchange,提问作者Alina Dzaferovic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:07:38