Skip to content

Instantly share code, notes, and snippets.

@lundquist-ecology-lab
Last active January 14, 2023 19:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lundquist-ecology-lab/99aa60b2aa2a74b40ca67d0925e8a737 to your computer and use it in GitHub Desktop.
Save lundquist-ecology-lab/99aa60b2aa2a74b40ca67d0925e8a737 to your computer and use it in GitHub Desktop.
Standard error and CI in R
# Dealing with uncertainty in R
library(palmerpenguins)
data(penguins)
penguins <- na.omit(penguins)
# If we want to calculate 95% CI using the 2SE convention:
species <- NULL
means <- NULL
std_devs <- NULL
sizes <- NULL
sems <- NULL
cis <- NULL
# Counter
k <- 1
for (i in levels(penguins$species)) {
x <- penguins$bill_length_mm[penguins$species == i]
means[k] <- mean(x)
std_devs[k] <- sd(x)
sizes[k] <- length(x)
sems[k] <- std_devs[k] / sqrt(sizes[k])
cis[k] <- paste(means[k] - 2 * sems[k], means[k] + 2 * sems[k], sep = ",")
species[k] <- paste(i)
k <- k + 1
}
results <- data.frame(species, sizes, means, std_devs, sems, cis)
names(results) <- c("species", "n", "mean", "sd", "se", "ci")
print(results)
# Mean, standard deviation, standard error, and 95% confidence intervals using **t-distribution**
library(Rmisc)
rmisc_results <- summarySE(penguins, measurevar = "bill_length_mm", groupvars = "species")
ci_lower <- rmisc_results$bill_length_mm - rmisc_results$ci
ci_upper <- rmisc_results$bill_length_mm + rmisc_results$ci
print(paste(ci_lower, ci_upper, sep = ","))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment