From ae3e18a6bb6c2cbd49efe2b37e17f38afe63f30e Mon Sep 17 00:00:00 2001 From: JesseAlderliesten Date: Fri, 6 Jun 2025 13:21:44 +0200 Subject: [PATCH] Prevent error 'missing value where TRUE/FALSE needed' if x or y contains Inf. --- src/library/stats/R/t.test.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/library/stats/R/t.test.R b/src/library/stats/R/t.test.R index d96c4e6f5af..09d9208def4 100644 --- a/src/library/stats/R/t.test.R +++ b/src/library/stats/R/t.test.R @@ -60,7 +60,7 @@ function(x, y = NULL, alternative = c("two.sided", "less", "greater"), if(nx < 2) stop("not enough 'x' observations") df <- nx-1 stderr <- sqrt(vx/nx) - if(stderr < 10 *.Machine$double.eps * abs(mx)) + if(!is.na(stderr) && stderr < 10 *.Machine$double.eps * abs(mx)) stop("data are essentially constant") tstat <- (mx-mu)/stderr method <- if(paired) "Paired t-test" else "One Sample t-test" @@ -91,7 +91,7 @@ function(x, y = NULL, alternative = c("two.sided", "less", "greater"), stderr <- sqrt(stderrx^2 + stderry^2) df <- stderr^4/(stderrx^4/(nx-1) + stderry^4/(ny-1)) } - if(stderr < 10 *.Machine$double.eps * max(abs(mx), abs(my))) + if(!is.na(stderr) && stderr < 10 *.Machine$double.eps * max(abs(mx), abs(my))) stop("data are essentially constant") tstat <- (mx - my - mu)/stderr }