Loop with a list which composed of dataframes

Hi there,

Is it possible to make a loop for each element of a list - called list_df - which composed of dataframe ?

The list is created with split() function, which split a big dataframe to many small dataframes.

The aim is to apply several operations to each element (dataframe) of the list.

list_df=split(dt, dt$col1) # the big dataframe splitting by col1, and stored in list_df

dt1=list_df$`1NA01` # the first element of the list is stored in a dataframe called dt1

mean(dt1) # operations that I wish to apply to each element of the list (1NA01, 2NA02 etc.)
sd(dt1)

Many thanks in advance for your assistance,

I was just doing something similar. Come back with questions.

suppressPackageStartupMessages({
  library(ggplot2)
  library(glue)
  library(magrittr)
  library(multcompView)
  library(purrr)
})

get_var <- function(x, y) glue("Variable: ", names(x[y]))

pull_one <- function(x) {
  headline <- "Differences in mean levels of Month, 95% family-wise confidence level"
  ggplot(tibble::rownames_to_column(as.data.frame(collector[x][[1]]$Month), var = "Month"), aes(diff, Month)) +
    geom_pointrange(aes(xmin = lwr, xmax = upr)) +
    labs(title = headline, subtitle = get_var(collector, x)) +
    xlab("") +
    ylab("") +
    theme_minimal() +
    theme(
      panel.grid.major.y = element_blank(),
      panel.grid.minor.y = element_blank()
    )
}

bpdata <- data.frame(
  # moved to first column
  Month = as.factor(c(
    "July", "July", "July", "August", "August", "August",
    "September", "September", "July", "July", "July",
    "August", "August", "August", "September", "September",
    "July", "July", "July", "August", "August", "August",
    "September", "September", "July", "July", "July", "August",
    "August", "August", "September", "September", "July",
    "July", "July", "August", "August", "August", "September",
    "September", "July", "July", "July", "August", "August",
    "August", "September", "September", "July", "July",
    "July", "August", "August", "September", "September",
    "September", "July", "July", "July", "August", "August",
    "September", "September", "September", "July", "July",
    "July", "August", "August", "September", "September",
    "September", "July", "July", "July", "August", "August",
    "September", "September", "September", "July", "July", "July",
    "August", "August", "September", "September",
    "September", "July", "July", "August", "August", "August",
    "September", "September", "September"
  )),
  DO = c(
    4.24, 2.58, 2.85, 3.81, 2.64, 4.61, 5.74, 3.69, 4.24,
    2.66, 2.85, 3.81, 2.64, 4.61, 5.74, 3.69, 2.51, 2.66,
    3.14, 2.92, 1.83, 1.82, 3.02, 3.3, 2.51, 3.04, 2.85,
    2.92, 1.83, 1.82, 3.02, 3.3, 4.24, 3.04, 2.85, 3.81, 2.64,
    4.61, 5.74, 3.69, 4.24, 2.09, 2.98, 3.81, 1.83, 1.82,
    3.02, 3.3, 2.51, 2.09, 2.98, 8.17, 2.63, 7.69, 3.07, 3.7,
    2.51, 3.04, 2.18, 8.17, 2.63, 7.69, 3.07, 3.7, 2.58,
    2.09, 2.18, 2.16, 1.7, 6.8, 1.95, 4.28, 2.58, 2.09, 2.98,
    2.16, 1.7, 6.8, 1.95, 4.28, 2.66, 3.14, 2.18, 8.17, 2.63,
    7.69, 3.07, 3.7, 2.66, 3.14, 2.92, 2.16, 1.7, 6.8, 1.95, 4.28
  ),
  pH = c(
    9.94, 10.06, 9.98, 9.07, 8.99, 8.93, 9.24, 9.32, 9.94,
    10, 9.98, 9.07, 8.99, 8.93, 9.24, 9.32, 10.04, 10, 10,
    9.06, 8.99, 8.92, 9.18, 9.32, 10.04, 9.96, 9.98, 9.06,
    8.99, 8.92, 9.18, 9.32, 9.94, 9.96, 9.98, 9.07, 8.99,
    8.93, 9.24, 9.32, 9.94, 9.95, 10.09, 9.07, 8.99, 8.92,
    9.18, 9.32, 10.04, 9.95, 10.09, 9.04, 9, 9.53, 9.31, 9.14,
    10.04, 9.96, 9.97, 9.04, 9, 9.53, 9.31, 9.14, 10.06,
    9.95, 9.97, 8.96, 9.02, 9.51, 9.39, 8.85, 10.06, 9.95,
    10.09, 8.96, 9.02, 9.51, 9.39, 8.85, 10, 10, 9.97, 9.04, 9,
    9.53, 9.31, 9.14, 10, 10, 9.06, 8.96, 9.02, 9.51, 9.39,
    8.85
  ),
  Temperature = c(
    24.48, 24.95, 24.01, 26.67, 24.01, 23.5, 24.46, 24.65,
    24.48, 24.92, 24.01, 26.67, 24.01, 23.5, 24.46, 24.65,
    24.35, 24.92, 24, 26.46, 23.99, 23.43, 24.14, 24.67,
    24.35, 24.04, 24.01, 26.46, 23.99, 23.43, 24.14, 24.67,
    24.48, 24.04, 24.01, 26.67, 24.01, 23.5, 24.46, 24.65,
    24.48, 24.01, 24.36, 26.67, 23.99, 23.43, 24.14, 24.67,
    24.35, 24.01, 24.36, 24.88, 24.7, 26.14, 24.19, 22.65,
    24.35, 24.04, 24.4, 24.88, 24.7, 26.14, 24.19, 22.65, 24.95,
    24.01, 24.4, 24.3, 24.72, 26.15, 23.9, 20.65, 24.95,
    24.01, 24.36, 24.3, 24.72, 26.15, 23.9, 20.65, 24.92, 24,
    24.4, 24.88, 24.7, 26.14, 24.19, 22.65, 24.92, 24,
    26.46, 24.3, 24.72, 26.15, 23.9, 20.65
  ),
  Turbidity = c(
    87.3, 95.2, 98.8, 24.9, 43.1, 49.1, 68.6, 69.8, 87.3,
    113, 98.8, 24.9, 43.1, 49.1, 68.6, 69.8, 87.7, 113,
    96.9, 39.7, 49, 47.6, 66.6, 74.1, 87.7, 98.5, 98.8, 39.7,
    49, 47.6, 66.6, 74.1, 87.3, 98.5, 98.8, 24.9, 43.1,
    49.1, 68.6, 69.8, 87.3, 95.9, 97.2, 24.9, 49, 47.6, 66.6,
    74.1, 87.7, 95.9, 97.2, 46.9, 37.2, 74.2, 69.9, 71.3,
    87.7, 98.5, 100.6, 46.9, 37.2, 74.2, 69.9, 71.3, 95.2, 95.9,
    100.6, 42, 36.1, 74.4, 44.4, 71.3, 95.2, 95.9, 97.2,
    42, 36.1, 74.4, 44.4, 71.3, 113, 96.9, 100.6, 46.9, 37.2,
    74.2, 69.9, 71.3, 113, 96.9, 39.7, 42, 36.1, 74.4, 44.4,
    71.3
  ),
  ORP = c(
    97, 108.4, 102.9, 94, 63.9, 64.7, 40.3, 48.1, 97,
    111.9, 102.9, 94, 63.9, 64.7, 40.3, 48.1, 91.3, 111.9,
    108, 23.7, 64.1, 60.4, 40.6, 49.8, 91.3, 98.9, 102.9,
    23.7, 64.1, 60.4, 40.6, 49.8, 97, 98.9, 102.9, 94, 63.9,
    64.7, 40.3, 48.1, 97, 92.8, 106.9, 94, 64.1, 60.4, 40.6,
    49.8, 91.3, 92.8, 106.9, 90.4, 74.9, 67.7, 42, 37.1,
    91.3, 98.9, 102.7, 90.4, 74.9, 67.7, 42, 37.1, 108.4,
    92.8, 102.7, 53, 63.4, 73.9, 42, 37.5, 108.4, 92.8, 106.9,
    53, 63.4, 73.9, 42, 37.5, 111.9, 108, 102.7, 90.4, 74.9,
    67.7, 42, 37.1, 111.9, 111.9, 23.7, 53, 63.4, 73.9, 42,
    37.5
  ),
  Ammonium = c(
    4.46, 4.62, 4.37, 5.6, 3.38, 3.21, 1.93, 2.21, 4.46,
    4.75, 4.37, 5.6, 3.38, 3.21, 1.93, 2.21, 4.5, 4.75,
    4.48, 7.64, 3.18, 3.09, 2.19, 2.14, 4.5, 3.97, 4.37, 7.64,
    3.18, 3.09, 2.19, 2.14, 4.46, 3.97, 4.37, 5.6, 3.38,
    3.21, 1.93, 2.21, 4.46, 4.06, 4.43, 5.6, 3.18, 3.09, 2.19,
    2.14, 4.5, 4.06, 4.43, 2.81, 4.2, 4.5, 1.99, 2.07, 4.5,
    3.97, 5.47, 2.81, 4.2, 4.5, 1.99, 2.07, 4.62, 4.06,
    5.47, 3.19, 3.97, 3.3, 3.38, 1.18, 4.62, 4.06, 4.43, 3.19,
    3.97, 3.3, 3.38, 1.18, 4.75, 4.48, 5.47, 2.81, 4.2, 4.5,
    1.99, 2.07, 4.75, 4.48, 7.64, 3.19, 3.97, 3.3, 3.38,
    1.18
  ),
  Nitrates = c(
    3.6, 3.98, 3.57, 3.53, 2.55, 2.28, 0.71, 1.2, 3.6,
    3.21, 3.57, 3.53, 2.55, 2.28, 0.71, 1.2, 3.36, 3.21,
    3.76, 3.66, 2.44, 2.06, 0.67, 0.87, 3.36, 4.35, 3.57,
    3.66, 2.44, 2.06, 0.67, 0.87, 3.6, 4.35, 3.57, 3.53, 2.55,
    2.28, 0.71, 1.2, 3.6, 3.68, 3.34, 3.53, 2.44, 2.06,
    0.67, 0.87, 3.36, 3.68, 3.34, 2.25, 2.99, 1.3, 0.74, 0.68,
    3.36, 4.35, 4.11, 2.25, 2.99, 1.3, 0.74, 0.68, 3.98,
    3.68, 4.11, 2.1, 2.55, 1.11, 0.69, 0.69, 3.98, 3.68, 3.34,
    2.1, 2.55, 1.11, 0.69, 0.69, 3.21, 3.76, 4.11, 2.25,
    2.99, 1.3, 0.74, 0.68, 3.21, 3.76, 3.66, 2.1, 2.55, 1.11,
    0.69, 0.69
  ),
  BGA = c(
    279133, 279113, 265304, 11603, 218471, 226658, 267389,
    267144, 279133, 270193, 265304, 11603, 218471, 226658,
    267389, 267144, 267716, 270193, 279119, 66608, 213497,
    242331, 267007, 261363, 267716, 279109, 265304, 66608,
    213497, 242331, 267007, 261363, 279133, 279109, 265304,
    11603, 218471, 226658, 267389, 267144, 279133, 279100,
    279099, 11603, 213497, 242331, 267007, 261363, 267716,
    279100, 279099, 246979, 169175, 272332, 269519, 272096,
    267716, 279109, 278137, 246979, 169175, 272332, 269519,
    272096, 279113, 279100, 278137, 174271, 159046, 271503,
    261124, 271303, 279113, 279100, 279099, 174271, 159046,
    271503, 261124, 271303, 270193, 279119, 278137, 246979,
    169175, 272332, 269519, 272096, 270193, 279119, 66608,
    174271, 159046, 271503, 261124, 271303
  ),
  Chlrophyll = c(
    36.6, 38.9, 40, 44, 35, 32.8, 44, 44.8, 36.6, 39.8,
    40, 44, 35, 32.8, 44, 44.8, 39.6, 39.8, 38.5, 45.1,
    42.2, 50.2, 43.6, 45.1, 39.6, 43, 40, 45.1, 42.2, 50.2,
    43.6, 45.1, 36.6, 43, 40, 44, 35, 32.8, 44, 44.8, 36.6,
    50, 43, 44, 42.2, 50.2, 43.6, 45.1, 39.6, 50, 43, 34,
    38.4, 58.5, 44.3, 40, 39.6, 43, 53.8, 34, 38.4, 58.5, 44.3,
    40, 38.9, 50, 53.8, 50.3, 55.9, 51.3, 68.2, 34.2, 38.9,
    50, 43, 50.3, 55.9, 51.3, 68.2, 34.2, 39.8, 38.5, 53.8,
    34, 38.4, 58.5, 44.3, 40, 39.8, 38.5, 45.1, 50.3, 55.9,
    51.3, 68.2, 34.2
  )
)


collector <- bpdata[2:9] %>% map(~ TukeyHSD(aov(.x ~ Month, data = bpdata), "Month", ordered = TRUE))

pull_one(1)