How to deploy experiment:

library(ggplot2)
library(reshape2)
#' @name assign_vector
#' @param data A vector of data to perform the t-test on.
#' @param n An integer indicating the number of t-tests to perform. Default is 1000
#' @return A data frame in "tall" format
assign_vector <- function(data, n = 1000) {
# replicate the call to shapiro.
#test n times to build up a vector of p-values
  p.5 <- replicate(n=n, expr=shapiro.test(sample(my.data, 5, replace=TRUE))$p.value)
  p.10 <- replicate(n=n, expr=shapiro.test(sample(my.data, 10, replace=TRUE))$p.value)
  p.1000 <- replicate(n=n, expr=shapiro.test(sample(my.data, 1000, replace=TRUE))$p.value)
#' Combine the data into a data frame, 
#' one column for each number of samples tested.
  p.df <- cbind(p.5, p.10, p.1000)
  p.df <- as.data.frame(p.df)
  colnames(p.df) <- c("5 samples","10 samples","1000 samples")
#' Put the data in "tall" format, one column for number of samples
#' and one column for the p-value.
  p.df.m <- melt(p.df)
#' Make sure the levels are sorted correctly.
  p.df.m <- transform(p.df.m, variable = factor(variable, levels = c("5 samples","10 samples","1000 samples")))
  return(p.df.m)  
}
n.rand <- 100000
n.test <- 10000
my.data <- rnorm(n.rand)
p.df.m <- assign_vector(my.data, n = n.test)
No id variables; using all as measure variables
#plot the p-values 
ggplot(p.df.m, aes(x = value)) + 
  geom_histogram(binwidth = 1/10) + 
  facet_grid(facets=variable ~ ., scales="free_y") + 
  xlim(0,1) +
  ylab("Count of p-values") +
  xlab("p-values") +
  theme(text = element_text(size = 16))

#check out the distribution. What do you notice?
ggplot(NULL, aes(x=x, colour = distribution)) + 
  stat_function(fun=dnorm, data = data.frame(x = c(-6,6), distribution = factor(1))) + 
  stat_function(fun=dt, args = list( df = 20), data = data.frame(x = c(-6,6), distribution = factor(2)), linetype = "dashed") + 
  scale_colour_manual(values = c("blue","red"), labels = c("Normal","T-Distribution"))

my.data <- rt(n.rand, df = 20)
p.df.m <- assign_vector(my.data, n = n.test)
No id variables; using all as measure variables
ggplot(p.df.m, aes(x = value)) + 
  geom_histogram(binwidth = 1/10) + 
  facet_grid(facets=variable ~ ., scales="free_y") + 
  xlim(0,1) +
  ylab("Count of p-values") +
  xlab("p-values") +
  theme(text = element_text(size = 16))

my.data <- rt(n.rand, df = 20)
my.data.2 <- rnorm(n.rand)
# Trim off the tails
my.data <- my.data[which(my.data < 3 & my.data > -3)]
# Add in tails from the other distribution
my.data <- c(my.data, my.data.2[which(my.data.2 < -3 | my.data.2 > 3)])
p.df.m <- assign_vector(my.data, n = n.test)
No id variables; using all as measure variables
ggplot(p.df.m, aes(x = value)) + 
  geom_histogram(binwidth = 1/10) + 
  facet_grid(facets=variable ~ ., scales="free_y") + 
  xlim(0,1) +
  ylab("Count of p-values") +
  xlab("p-values") +
  theme(text = element_text(size = 16))


my.data <- rnorm(n.rand)
my.data.2 <- rt(n.rand, df = 20)
# Trim off the tails
my.data <- my.data[which(my.data < 3 & my.data > -3)]
# Add in tails from the other distribution
my.data <- c(my.data, my.data.2[which(my.data.2 < -3 | my.data.2 > 3)])
p.df.m <- assign_vector(my.data, n = n.test)
No id variables; using all as measure variables
ggplot(p.df.m, aes(x = value)) + 
  geom_histogram(binwidth = 1/10) + 
  facet_grid(facets=variable ~ ., scales="free_y") + 
  xlim(0,1) +
  ylab("Count of p-values") +
  xlab("p-values") +
  theme(text = element_text(size = 16))

my.data <- rlnorm(n.rand, 0, 0.4)
p.df.m <- assign_vector(my.data, n = n.test)
No id variables; using all as measure variables
ggplot(p.df.m, aes(x = value)) + 
  geom_histogram(binwidth = 1/10) + 
  facet_grid(facets=variable ~ ., scales="free_y") + 
  xlim(-0.05,1.05) +
  ylab("Count of p-values") +
  xlab("p-values") +
  theme(text = element_text(size = 16))

hist(my.data)

Discussion

Small sample sizes will have a normal distribution. The normality tests are, indeed, very sensitive to what goes on in the extreme tails.

LS0tDQp0aXRsZTogIlN0YXRpc3RpY2FsIFRlc3RpbmctTVNEUzY1MCINCmF1dGhvcjogIkphY2x5biBCYXpzaWthIg0KZm9udC1mYW1pbHk6ICdHZW9yZ2lhJw0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KICAgICAgDQoNCg0KDQoNCg0KDQoNCg0KDQohW10oaHR0cHM6Ly9hbmVjNy5maWxlcy53b3JkcHJlc3MuY29tLzIwMTYvMDkvc3RhdHMtd29yZGNsb3VkLmpwZykNCg0KDQoNCg0KDQoNCg0KDQojI0hvdyB0byBkZXBsb3kgZXhwZXJpbWVudDoNCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHJlc2hhcGUyKQ0KDQpgYGANCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KYGBge3J9DQoNCiMnIEBuYW1lIGFzc2lnbl92ZWN0b3INCiMnIEBwYXJhbSBkYXRhIEEgdmVjdG9yIG9mIGRhdGEgdG8gcGVyZm9ybSB0aGUgdC10ZXN0IG9uLg0KIycgQHBhcmFtIG4gQW4gaW50ZWdlciBpbmRpY2F0aW5nIHRoZSBudW1iZXIgb2YgdC10ZXN0cyB0byBwZXJmb3JtLiBEZWZhdWx0IGlzIDEwMDANCiMnIEByZXR1cm4gQSBkYXRhIGZyYW1lIGluICJ0YWxsIiBmb3JtYXQNCmFzc2lnbl92ZWN0b3IgPC0gZnVuY3Rpb24oZGF0YSwgbiA9IDEwMDApIHsNCiMgcmVwbGljYXRlIHRoZSBjYWxsIHRvIHNoYXBpcm8uDQojdGVzdCBuIHRpbWVzIHRvIGJ1aWxkIHVwIGEgdmVjdG9yIG9mIHAtdmFsdWVzDQogIHAuNSA8LSByZXBsaWNhdGUobj1uLCBleHByPXNoYXBpcm8udGVzdChzYW1wbGUobXkuZGF0YSwgNSwgcmVwbGFjZT1UUlVFKSkkcC52YWx1ZSkNCiAgcC4xMCA8LSByZXBsaWNhdGUobj1uLCBleHByPXNoYXBpcm8udGVzdChzYW1wbGUobXkuZGF0YSwgMTAsIHJlcGxhY2U9VFJVRSkpJHAudmFsdWUpDQogIHAuMTAwMCA8LSByZXBsaWNhdGUobj1uLCBleHByPXNoYXBpcm8udGVzdChzYW1wbGUobXkuZGF0YSwgMTAwMCwgcmVwbGFjZT1UUlVFKSkkcC52YWx1ZSkNCiMnIENvbWJpbmUgdGhlIGRhdGEgaW50byBhIGRhdGEgZnJhbWUsIA0KIycgb25lIGNvbHVtbiBmb3IgZWFjaCBudW1iZXIgb2Ygc2FtcGxlcyB0ZXN0ZWQuDQogIHAuZGYgPC0gY2JpbmQocC41LCBwLjEwLCBwLjEwMDApDQogIHAuZGYgPC0gYXMuZGF0YS5mcmFtZShwLmRmKQ0KICBjb2xuYW1lcyhwLmRmKSA8LSBjKCI1IHNhbXBsZXMiLCIxMCBzYW1wbGVzIiwiMTAwMCBzYW1wbGVzIikNCiMnIFB1dCB0aGUgZGF0YSBpbiAidGFsbCIgZm9ybWF0LCBvbmUgY29sdW1uIGZvciBudW1iZXIgb2Ygc2FtcGxlcw0KIycgYW5kIG9uZSBjb2x1bW4gZm9yIHRoZSBwLXZhbHVlLg0KICBwLmRmLm0gPC0gbWVsdChwLmRmKQ0KIycgTWFrZSBzdXJlIHRoZSBsZXZlbHMgYXJlIHNvcnRlZCBjb3JyZWN0bHkuDQogIHAuZGYubSA8LSB0cmFuc2Zvcm0ocC5kZi5tLCB2YXJpYWJsZSA9IGZhY3Rvcih2YXJpYWJsZSwgbGV2ZWxzID0gYygiNSBzYW1wbGVzIiwiMTAgc2FtcGxlcyIsIjEwMDAgc2FtcGxlcyIpKSkNCiAgcmV0dXJuKHAuZGYubSkgIA0KfQ0KYGBgDQoNCmBgYHtyfQ0KDQpuLnJhbmQgPC0gMTAwMDAwDQpuLnRlc3QgPC0gMTAwMDANCm15LmRhdGEgPC0gcm5vcm0obi5yYW5kKQ0KcC5kZi5tIDwtIGFzc2lnbl92ZWN0b3IobXkuZGF0YSwgbiA9IG4udGVzdCkNCmBgYA0KDQpgYGB7cn0NCiNwbG90IHRoZSBwLXZhbHVlcyANCmdncGxvdChwLmRmLm0sIGFlcyh4ID0gdmFsdWUpKSArIA0KICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDEvMTApICsgDQogIGZhY2V0X2dyaWQoZmFjZXRzPXZhcmlhYmxlIH4gLiwgc2NhbGVzPSJmcmVlX3kiKSArIA0KICB4bGltKDAsMSkgKw0KICB5bGFiKCJDb3VudCBvZiBwLXZhbHVlcyIpICsNCiAgeGxhYigicC12YWx1ZXMiKSArDQogIHRoZW1lKHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2KSkNCmBgYA0KDQpgYGB7cn0NCiNjaGVjayBvdXQgdGhlIGRpc3RyaWJ1dGlvbi4gV2hhdCBkbyB5b3Ugbm90aWNlPw0KZ2dwbG90KE5VTEwsIGFlcyh4PXgsIGNvbG91ciA9IGRpc3RyaWJ1dGlvbikpICsgDQogIHN0YXRfZnVuY3Rpb24oZnVuPWRub3JtLCBkYXRhID0gZGF0YS5mcmFtZSh4ID0gYygtNiw2KSwgZGlzdHJpYnV0aW9uID0gZmFjdG9yKDEpKSkgKyANCiAgc3RhdF9mdW5jdGlvbihmdW49ZHQsIGFyZ3MgPSBsaXN0KCBkZiA9IDIwKSwgZGF0YSA9IGRhdGEuZnJhbWUoeCA9IGMoLTYsNiksIGRpc3RyaWJ1dGlvbiA9IGZhY3RvcigyKSksIGxpbmV0eXBlID0gImRhc2hlZCIpICsgDQogIHNjYWxlX2NvbG91cl9tYW51YWwodmFsdWVzID0gYygiYmx1ZSIsInJlZCIpLCBsYWJlbHMgPSBjKCJOb3JtYWwiLCJULURpc3RyaWJ1dGlvbiIpKQ0KYGBgDQoNCmBgYHtyfQ0KbXkuZGF0YSA8LSBydChuLnJhbmQsIGRmID0gMjApDQpgYGANCg0KYGBge3J9DQpwLmRmLm0gPC0gYXNzaWduX3ZlY3RvcihteS5kYXRhLCBuID0gbi50ZXN0KQ0KZ2dwbG90KHAuZGYubSwgYWVzKHggPSB2YWx1ZSkpICsgDQogIGdlb21faGlzdG9ncmFtKGJpbndpZHRoID0gMS8xMCkgKyANCiAgZmFjZXRfZ3JpZChmYWNldHM9dmFyaWFibGUgfiAuLCBzY2FsZXM9ImZyZWVfeSIpICsgDQogIHhsaW0oMCwxKSArDQogIHlsYWIoIkNvdW50IG9mIHAtdmFsdWVzIikgKw0KICB4bGFiKCJwLXZhbHVlcyIpICsNCiAgdGhlbWUodGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTYpKQ0KYGBgDQoNCmBgYHtyfQ0KbXkuZGF0YSA8LSBydChuLnJhbmQsIGRmID0gMjApDQpteS5kYXRhLjIgPC0gcm5vcm0obi5yYW5kKQ0KIyBUcmltIG9mZiB0aGUgdGFpbHMNCm15LmRhdGEgPC0gbXkuZGF0YVt3aGljaChteS5kYXRhIDwgMyAmIG15LmRhdGEgPiAtMyldDQojIEFkZCBpbiB0YWlscyBmcm9tIHRoZSBvdGhlciBkaXN0cmlidXRpb24NCm15LmRhdGEgPC0gYyhteS5kYXRhLCBteS5kYXRhLjJbd2hpY2gobXkuZGF0YS4yIDwgLTMgfCBteS5kYXRhLjIgPiAzKV0pDQpgYGANCg0KDQpgYGB7cn0NCnAuZGYubSA8LSBhc3NpZ25fdmVjdG9yKG15LmRhdGEsIG4gPSBuLnRlc3QpDQpnZ3Bsb3QocC5kZi5tLCBhZXMoeCA9IHZhbHVlKSkgKyANCiAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSAxLzEwKSArIA0KICBmYWNldF9ncmlkKGZhY2V0cz12YXJpYWJsZSB+IC4sIHNjYWxlcz0iZnJlZV95IikgKyANCiAgeGxpbSgwLDEpICsNCiAgeWxhYigiQ291bnQgb2YgcC12YWx1ZXMiKSArDQogIHhsYWIoInAtdmFsdWVzIikgKw0KICB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNikpDQpgYGANCg0KYGBge3J9DQoNCm15LmRhdGEgPC0gcm5vcm0obi5yYW5kKQ0KbXkuZGF0YS4yIDwtIHJ0KG4ucmFuZCwgZGYgPSAyMCkNCiMgVHJpbSBvZmYgdGhlIHRhaWxzDQpteS5kYXRhIDwtIG15LmRhdGFbd2hpY2gobXkuZGF0YSA8IDMgJiBteS5kYXRhID4gLTMpXQ0KIyBBZGQgaW4gdGFpbHMgZnJvbSB0aGUgb3RoZXIgZGlzdHJpYnV0aW9uDQpteS5kYXRhIDwtIGMobXkuZGF0YSwgbXkuZGF0YS4yW3doaWNoKG15LmRhdGEuMiA8IC0zIHwgbXkuZGF0YS4yID4gMyldKQ0KYGBgDQoNCmBgYHtyfQ0KcC5kZi5tIDwtIGFzc2lnbl92ZWN0b3IobXkuZGF0YSwgbiA9IG4udGVzdCkNCmdncGxvdChwLmRmLm0sIGFlcyh4ID0gdmFsdWUpKSArIA0KICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDEvMTApICsgDQogIGZhY2V0X2dyaWQoZmFjZXRzPXZhcmlhYmxlIH4gLiwgc2NhbGVzPSJmcmVlX3kiKSArIA0KICB4bGltKDAsMSkgKw0KICB5bGFiKCJDb3VudCBvZiBwLXZhbHVlcyIpICsNCiAgeGxhYigicC12YWx1ZXMiKSArDQogIHRoZW1lKHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2KSkNCmBgYA0KDQpgYGB7cn0NCm15LmRhdGEgPC0gcmxub3JtKG4ucmFuZCwgMCwgMC40KQ0KYGBgDQoNCmBgYHtyfQ0KcC5kZi5tIDwtIGFzc2lnbl92ZWN0b3IobXkuZGF0YSwgbiA9IG4udGVzdCkNCmdncGxvdChwLmRmLm0sIGFlcyh4ID0gdmFsdWUpKSArIA0KICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDEvMTApICsgDQogIGZhY2V0X2dyaWQoZmFjZXRzPXZhcmlhYmxlIH4gLiwgc2NhbGVzPSJmcmVlX3kiKSArIA0KICB4bGltKC0wLjA1LDEuMDUpICsNCiAgeWxhYigiQ291bnQgb2YgcC12YWx1ZXMiKSArDQogIHhsYWIoInAtdmFsdWVzIikgKw0KICB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNikpDQpgYGANCg0KYGBge3J9DQpoaXN0KG15LmRhdGEpDQpgYGANCg0KDQoNCiMjIERpc2N1c3Npb24NClNtYWxsIHNhbXBsZSBzaXplcyB3aWxsIGhhdmUgYSBub3JtYWwgZGlzdHJpYnV0aW9uLiBUaGUgbm9ybWFsaXR5IHRlc3RzIGFyZSwgaW5kZWVkLCB2ZXJ5IHNlbnNpdGl2ZSB0byB3aGF0IGdvZXMgb24gaW4gdGhlIGV4dHJlbWUgdGFpbHMu