From ru|pb@rr@d@@ @end|ng |rom @@po@pt  Thu Feb 21 23:19:13 2019
From: ru|pb@rr@d@@ @end|ng |rom @@po@pt (Rui Barradas)
Date: Thu, 21 Feb 2019 22:19:13 +0000
Subject: [Rd] Return/print standard error in t.test()
In-Reply-To: <FBFE4A3F-ACD3-4373-87E1-0B6D50EA14A5@mcmaster.ca>
References: <5880_1550782663_x1LKvgt1024492_CAOC91MRbfkM3Z-27xGjpq00yV0RrfVCnZT=s3f6YH374x_wpEw@mail.gmail.com>
 <FBFE4A3F-ACD3-4373-87E1-0B6D50EA14A5@mcmaster.ca>
Message-ID: <42e3fe42-cbff-f07c-28dd-76fb805cb370@sapo.pt>

Hello,

Something like this?



t.test2 <- function(...) {
   ht <- t.test(...)
   class(ht) <- c("htest_tjl", class(ht))
   ht
}
print.htest_tjl <- function(x, ...) {
   NextMethod(x, ...)
   se <- as.vector(abs(diff(x$estimate)/x$statistic))
   cat("Standard error of the difference:", se, "\n\n")
   invisible(x)
}

t.test2(1:10, y = c(7:20))
t.test2(extra ~ group, data = sleep)  # last example from ?t.test



(The suffix tjl commes from the OP's initials.)


Hope this helps,

Rui Barradas

?s 21:51 de 21/02/2019, Fox, John escreveu:
> Dear Thomas,
> 
> it is, unfortunately, not that simple. t.test() returns an object of class "htest" and not all such objects have standard errors. I'm not entirely sure what the point is since it's easy to compute the standard error of the difference from the information in the object (adapting an example from ?t.test):
> 
>> (res <- t.test(1:10, y = c(7:20)))
> 
> 	Welch Two Sample t-test
> 
> data:  1:10 and c(7:20)
> t = -5.4349, df = 21.982, p-value = 1.855e-05
> alternative hypothesis: true difference in means is not equal to 0
> 95 percent confidence interval:
>   -11.052802  -4.947198
> sample estimates:
> mean of x mean of y
>        5.5      13.5
> 
>> as.vector(abs(diff(res$estimate)/res$statistic)) # SE
> [1] 1.47196
>> class(res)
> [1] "htest"
> 
> and if you really want to print the SE as a matter of course, you could always write your own wrapper for t.test() that returns an object of class, say, "t.test" for which you can provide a print() method. Much of the advantage of working in a statistical computing environment like R (or Stata, for that matter) is that you can make things work the way you like.
> 
> Best,
>   John
> 
>    -------------------------------------------------
>    John Fox, Professor Emeritus
>    McMaster University
>    Hamilton, Ontario, Canada
>    Web: http::/socserv.mcmaster.ca/jfox
> 
>> On Feb 21, 2019, at 3:57 PM, Thomas J. Leeper <thosjleeper at gmail.com> wrote:
>>
>> A recent thread on Twitter [1] by a Stata user highlighted that t.test()
>> does not return or print the standard error of the mean difference, despite
>> it being calculated by the function.
>>
>> I know this isn?t the kind of change that?s likely to be made but could we
>> at least return the SE even if the print() method isn?t updated? Or,
>> better, update the print() method to display this as well?
>>
>> Best,
>> Thomas
>>
>> [1]
>> https://twitter.com/amandayagan/status/1098314654470819840?s=21
>> -- 
>>
>> Thomas J. Leeper
>> http://www.thomasleeper.com
>>
>> 	[[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



[Rd] Return/print standard error in t.test()
Rui Barradas