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

R中t.test()公式法报错‘cannot use 'paired'’的解决方法

解决t.test()设置paired=TRUE的报错问题

报错原因很明确:t.test的公式语法(temp~activ)属于独立样本检验的接口,不支持paired参数,公式方法会自动按分组变量拆分数据做独立样本t检验,因此传入paired参数会触发错误。

要实现配对t检验,需要改用双向量输入格式,直接传入两组配对的数值向量,同时确保两组数据长度一致、顺序一一对应(即每个位置的两个值属于同一配对样本)。

具体操作步骤

  1. 从数据框中提取两组配对的体温数据:
library(datasets)
data(beaver2)

# 提取不活动状态的体温
temp_inactive <- beaver2$temp[beaver2$activ == 0]
# 提取活动状态的体温
temp_active <- beaver2$temp[beaver2$activ == 1]
  1. 检查两组数据长度是否一致(配对检验的必要条件):
length(temp_inactive)
length(temp_active)

注意:beaver2数据集里,不活动状态的记录有62条,活动状态有38条,长度不匹配,无法直接做配对检验。如果你的实际场景是配对设计,需要先确保数据是成对的(比如每个样本个体都有活动/不活动两种状态的记录),再调整数据提取逻辑。

  1. 若数据长度匹配,运行配对t检验:
t.test(temp_inactive, temp_active, 
       paired = TRUE,
       alternative = "two.sided",
       mu = 0)

补充说明

如果你的数据是长格式的配对数据(比如每个个体对应两行记录,分别是两种状态),可以先将数据转换为宽格式,再提取向量:

library(tidyr)
# 假设有个体标识列id(示例,beaver2无此列)
# beaver_wide <- pivot_wider(your_data, id_cols = id, 
#                            names_from = activ, values_from = temp,
#                            names_prefix = "temp_")
# t.test(beaver_wide$temp_0, beaver_wide$temp_1, paired = TRUE)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:17:33