运行配对stats::t.test()出现the condition has length >1错误,求排查
问题原因与解决方法
错误根源
你遇到的报错是变量名冲突导致的,和环境无关,属于变量命名问题:
- R语言中,
T是逻辑值TRUE的默认简写; - 你提前执行了
T <- 1:10,把T覆盖成了一个长度为10的向量; - 当你调用
stats::t.test(..., paired = T)时,传递给paired参数的是这个长度10的向量,而该参数要求传入单个逻辑值(TRUE/FALSE),因此触发了条件长度大于1的错误。
解决方法
有两种简单的修复方式:
- 直接使用完整的逻辑值
TRUE代替简写T
T <- 1:10 stats::t.test(c(1, 2, 3), c(4, 5, 8), paired = TRUE)
- 给自定义变量更换名称,避免覆盖R的默认简写(同理不要用
F作为变量名)
my_T <- 1:10 stats::t.test(c(1, 2, 3), c(4, 5, 8), paired = T)
内容的提问来源于stack exchange,提问作者Zoe
相关产品推荐
相关产品推荐

