0

I can perform a 1 sample t-test in R with the t.test command. This requires actual sets of data. I can't use summary statistics (sample size, sample mean, standard deviation). I can work around this utilizing the BSDA package. But are there any other ways to accomplish this 1-sample-T in R without the BSDA pacakage?

Display name
  • 4,153
  • 5
  • 27
  • 75
  • 2
    Yeah. You could just do it 'by hand' using statistical theory. – Dason Jul 14 '17 at 23:04
  • 2
    Use something like this `2*pt(-(abs(mean-mu))*sqrt(n)/sd, df=n-1)` where `mean`, `mu`, `n` and `sd` are the sample mean, null hypothesis, sample size, and sample standard deviation, respectively. – ekstroem Jul 15 '17 at 00:17

1 Answers1

1

Many ways. I'll list a few:

  • directly calculate the p-value by computing the statistic and calling pt with that and the df as arguments, as commenters suggest above (it can be done with a single short line in R - ekstroem shows the two-tailed test case; for the one tailed case you wouldn't double it)

  • alternatively, if it's something you need a lot, you could convert that into a nice robust function, even adding in tests against non-zero mu and confidence intervals if you like. Presumably if you go this route you'' want to take advantage of the functionality built around the htest class

    (code and even a reasonably complete function can be found in the answers to this stats.SE question.)

  • If samples are not huge (smaller than a few million, say), you can simulate data with the exact same mean and standard deviation and call the ordinary t.test function. If m and s and n are the mean, sd and sample size, t.test(scale(rnorm(n))*s+m) should do (it doesn't matter what distribution you use, so runif would suffice). Note the importance of calling scale there. This makes it easy to change your alternative or get a CI without writing more code, but it wouldn't be suitable if you had millions of observations and needed to do it more than a couple of times.

  • call a function in a different package that will calculate it -- there's at least one or two other such packages (you don't make it clear whether using BSDA was a problem or whether you wanted to avoid packages altogether)

Community
  • 1
  • 1
Glen_b
  • 7,883
  • 2
  • 37
  • 48