0

I have a very large code, where every time the same is going on but with different filters. Is there a way to make it much more shorter that it would be easy to change filters and adding new subjects?

The background behind this is as follow: I have a large data frame with values of core temperature. I have for 24 subjects each 10 seconds one value. Those date were collected during two games with each 4 quarter. In the end I like to have a data frame with the mean of core temperature over one minute for each subject and splittend up into the different games and the part of the game.

An extract of my data looks like this:


Test    Subject Datum   Zeit    Temperatur  Timepoint
[...]
G1  R014    28.06.2019  20:02:57    37.8    Q1
G1  R014    28.06.2019  20:03:07    37.8    Q1
G1  R014    28.06.2019  20:03:17    37.8    Q1
G1  R014    28.06.2019  20:03:27    37.7    Q1
G1  R014    28.06.2019  20:03:37    37.8    Q1
G1  R014    28.06.2019  20:03:47    37.7    Q1
G1  R014    28.06.2019  20:03:57    37.8    Q1
G1  R014    28.06.2019  20:04:06    37.7    Q1
G1  R014    28.06.2019  20:04:16    37.8    Q1
G1  R014    28.06.2019  20:04:26    37.7    Q1
G1  R014    28.06.2019  20:04:36    37.7    Q1
G1  R014    28.06.2019  20:04:46    37.7    Q1
G1  R014    28.06.2019  20:04:56    37.8    Q1
G1  R014    28.06.2019  20:05:06    37.8    Q1
G1  R014    28.06.2019  20:05:16    37.8    Q1
G1  R014    28.06.2019  20:05:26    37.8    Q1
G1  R014    28.06.2019  20:05:36    37.8    Q1
G1  R014    28.06.2019  20:05:46    37.8    Q1
G1  R014    28.06.2019  20:05:56    37.8    Q1
[...]

This is my code:

library(readxl)
library(tidyverse)
library(caTools)
library(microbenchmark)
Temperatur_Alle <- read_excel()
attach(Temperatur_Alle)

R001_G1_Q1_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G1", Timepoint == "Q1")
R001_G1_P1_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G1", Timepoint == "P1")
R001_G1_Q2_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G1", Timepoint == "Q2")
R001_G1_P2_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G1", Timepoint == "P2")
R001_G1_Q3_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G1", Timepoint == "Q3")
R001_G1_P3_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G1", Timepoint == "P3")
R001_G1_Q4_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G1", Timepoint == "Q4")
R001_G1_P4_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G1", Timepoint == "P4")
R001_G2_Q1_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G2", Timepoint == "Q1")
R001_G2_P1_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G2", Timepoint == "P1")
R001_G2_Q2_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G2", Timepoint == "Q2")
R001_G2_P2_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G2", Timepoint == "P2")
R001_G2_Q3_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G2", Timepoint == "Q3")
R001_G2_P3_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G2", Timepoint == "P3")
R001_G2_Q4_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G2", Timepoint == "Q4")
R001_G2_P4_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "G2", Timepoint == "P4")
R001_T1_Q1_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T1", Timepoint == "Q1")
R001_T1_P1_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T1", Timepoint == "P1")
R001_T1_Q2_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T1", Timepoint == "Q2")
R001_T1_P2_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T1", Timepoint == "P2")
R001_T1_Q3_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T1", Timepoint == "Q3")
R001_T1_P3_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T1", Timepoint == "P3")
R001_T1_Q4_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T1", Timepoint == "Q4")
R001_T1_P4_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T1", Timepoint == "P4")
R001_T2_Q1_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T2", Timepoint == "Q1")
R001_T2_P1_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T2", Timepoint == "P1")
R001_T2_Q2_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T2", Timepoint == "Q2")
R001_T2_P2_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T2", Timepoint == "P2")
R001_T2_Q3_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T2", Timepoint == "Q3")
R001_T2_P3_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T2", Timepoint == "P3")
R001_T2_Q4_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T2", Timepoint == "Q4")
R001_T2_P4_T  <- filter(Temperatur_Alle, Subject == "R001", Test == "T2", Timepoint == "P4")

R003_G1_Q1_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G1", Timepoint == "Q1")
R003_G1_P1_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G1", Timepoint == "P1")
R003_G1_Q2_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G1", Timepoint == "Q2")
R003_G1_P2_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G1", Timepoint == "P2")
R003_G1_Q3_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G1", Timepoint == "Q3")
R003_G1_P3_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G1", Timepoint == "P3")
R003_G1_Q4_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G1", Timepoint == "Q4")
R003_G1_P4_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G1", Timepoint == "P4")
R003_G2_Q1_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G2", Timepoint == "Q1")
R003_G2_P1_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G2", Timepoint == "P1")
R003_G2_Q2_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G2", Timepoint == "Q2")
R003_G2_P2_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G2", Timepoint == "P2")
R003_G2_Q3_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G2", Timepoint == "Q3")
R003_G2_P3_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G2", Timepoint == "P3")
R003_G2_Q4_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G2", Timepoint == "Q4")
R003_G2_P4_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "G2", Timepoint == "P4")
R003_T1_Q1_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T1", Timepoint == "Q1")
R003_T1_P1_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T1", Timepoint == "P1")
R003_T1_Q2_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T1", Timepoint == "Q2")
R003_T1_P2_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T1", Timepoint == "P2")
R003_T1_Q3_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T1", Timepoint == "Q3")
R003_T1_P3_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T1", Timepoint == "P3")
R003_T1_Q4_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T1", Timepoint == "Q4")
R003_T1_P4_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T1", Timepoint == "P4")
R003_T2_Q1_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T2", Timepoint == "Q1")
R003_T2_P1_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T2", Timepoint == "P1")
R003_T2_Q2_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T2", Timepoint == "Q2")
R003_T2_P2_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T2", Timepoint == "P2")
R003_T2_Q3_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T2", Timepoint == "Q3")
R003_T2_P3_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T2", Timepoint == "P3")
R003_T2_Q4_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T2", Timepoint == "Q4")
R003_T2_P4_T  <- filter(Temperatur_Alle, Subject == "R003", Test == "T2", Timepoint == "P4")

R001_G1_Q1_T60 <- data.frame(tapply(R001_G1_Q1_T$Temperatur, rep(seq_along(R001_G1_Q1_T$Temperatur), each = 6, length.out = length(R001_G1_Q1_T$Temperatur)), mean))
R001_G1_P1_T60 <- data.frame(tapply(R001_G1_P1_T$Temperatur, rep(seq_along(R001_G1_P1_T$Temperatur), each = 6, length.out = length(R001_G1_P1_T$Temperatur)), mean))
R001_G1_Q2_T60 <- data.frame(tapply(R001_G1_Q2_T$Temperatur, rep(seq_along(R001_G1_Q2_T$Temperatur), each = 6, length.out = length(R001_G1_Q2_T$Temperatur)), mean))
R001_G1_P2_T60 <- data.frame(tapply(R001_G1_P2_T$Temperatur, rep(seq_along(R001_G1_P2_T$Temperatur), each = 6, length.out = length(R001_G1_P2_T$Temperatur)), mean))
R001_G1_Q3_T60 <- data.frame(tapply(R001_G1_Q3_T$Temperatur, rep(seq_along(R001_G1_Q3_T$Temperatur), each = 6, length.out = length(R001_G1_Q3_T$Temperatur)), mean))
R001_G1_P3_T60 <- data.frame(tapply(R001_G1_P3_T$Temperatur, rep(seq_along(R001_G1_P3_T$Temperatur), each = 6, length.out = length(R001_G1_P3_T$Temperatur)), mean))
R001_G1_Q4_T60 <- data.frame(tapply(R001_G1_Q4_T$Temperatur, rep(seq_along(R001_G1_Q4_T$Temperatur), each = 6, length.out = length(R001_G1_Q4_T$Temperatur)), mean))
R001_G1_P4_T60 <- data.frame(tapply(R001_G1_P4_T$Temperatur, rep(seq_along(R001_G1_P4_T$Temperatur), each = 6, length.out = length(R001_G1_P4_T$Temperatur)), mean))
R001_G2_Q1_T60 <- data.frame(tapply(R001_G2_Q1_T$Temperatur, rep(seq_along(R001_G2_Q1_T$Temperatur), each = 6, length.out = length(R001_G2_Q1_T$Temperatur)), mean))
R001_G2_P1_T60 <- data.frame(tapply(R001_G2_P1_T$Temperatur, rep(seq_along(R001_G2_P1_T$Temperatur), each = 6, length.out = length(R001_G2_P1_T$Temperatur)), mean))
R001_G2_Q2_T60 <- data.frame(tapply(R001_G2_Q2_T$Temperatur, rep(seq_along(R001_G2_Q2_T$Temperatur), each = 6, length.out = length(R001_G2_Q2_T$Temperatur)), mean))
R001_G2_P2_T60 <- data.frame(tapply(R001_G2_P2_T$Temperatur, rep(seq_along(R001_G2_P2_T$Temperatur), each = 6, length.out = length(R001_G2_P2_T$Temperatur)), mean))
R001_G2_Q3_T60 <- data.frame(tapply(R001_G2_Q3_T$Temperatur, rep(seq_along(R001_G2_Q3_T$Temperatur), each = 6, length.out = length(R001_G2_Q3_T$Temperatur)), mean))
R001_G2_P3_T60 <- data.frame(tapply(R001_G2_P3_T$Temperatur, rep(seq_along(R001_G2_P3_T$Temperatur), each = 6, length.out = length(R001_G2_P3_T$Temperatur)), mean))
R001_G2_Q4_T60 <- data.frame(tapply(R001_G2_Q4_T$Temperatur, rep(seq_along(R001_G2_Q4_T$Temperatur), each = 6, length.out = length(R001_G2_Q4_T$Temperatur)), mean))
R001_G2_P4_T60 <- data.frame(tapply(R001_G2_P4_T$Temperatur, rep(seq_along(R001_G2_P4_T$Temperatur), each = 6, length.out = length(R001_G2_P4_T$Temperatur)), mean))
R001_T1_Q1_T60 <- data.frame(tapply(R001_T1_Q1_T$Temperatur, rep(seq_along(R001_T1_Q1_T$Temperatur), each = 6, length.out = length(R001_T1_Q1_T$Temperatur)), mean))
R001_T1_P1_T60 <- data.frame(tapply(R001_T1_P1_T$Temperatur, rep(seq_along(R001_T1_P1_T$Temperatur), each = 6, length.out = length(R001_T1_P1_T$Temperatur)), mean))
R001_T1_Q2_T60 <- data.frame(tapply(R001_T1_Q2_T$Temperatur, rep(seq_along(R001_T1_Q2_T$Temperatur), each = 6, length.out = length(R001_T1_Q2_T$Temperatur)), mean))
R001_T1_P2_T60 <- data.frame(tapply(R001_T1_P2_T$Temperatur, rep(seq_along(R001_T1_P2_T$Temperatur), each = 6, length.out = length(R001_T1_P2_T$Temperatur)), mean))
R001_T1_Q3_T60 <- data.frame(tapply(R001_T1_Q3_T$Temperatur, rep(seq_along(R001_T1_Q3_T$Temperatur), each = 6, length.out = length(R001_T1_Q3_T$Temperatur)), mean))
R001_T1_P3_T60 <- data.frame(tapply(R001_T1_P3_T$Temperatur, rep(seq_along(R001_T1_P3_T$Temperatur), each = 6, length.out = length(R001_T1_P3_T$Temperatur)), mean))
R001_T1_Q4_T60 <- data.frame(tapply(R001_T1_Q4_T$Temperatur, rep(seq_along(R001_T1_Q4_T$Temperatur), each = 6, length.out = length(R001_T1_Q4_T$Temperatur)), mean))
R001_T1_P4_T60 <- data.frame(tapply(R001_T1_P4_T$Temperatur, rep(seq_along(R001_T1_P4_T$Temperatur), each = 6, length.out = length(R001_T1_P4_T$Temperatur)), mean))
R001_T2_Q1_T60 <- data.frame(tapply(R001_T2_Q1_T$Temperatur, rep(seq_along(R001_T2_Q1_T$Temperatur), each = 6, length.out = length(R001_T2_Q1_T$Temperatur)), mean))
R001_T2_P1_T60 <- data.frame(tapply(R001_T2_P1_T$Temperatur, rep(seq_along(R001_T2_P1_T$Temperatur), each = 6, length.out = length(R001_T2_P1_T$Temperatur)), mean))
R001_T2_Q2_T60 <- data.frame(tapply(R001_T2_Q2_T$Temperatur, rep(seq_along(R001_T2_Q2_T$Temperatur), each = 6, length.out = length(R001_T2_Q2_T$Temperatur)), mean))
R001_T2_P2_T60 <- data.frame(tapply(R001_T2_P2_T$Temperatur, rep(seq_along(R001_T2_P2_T$Temperatur), each = 6, length.out = length(R001_T2_P2_T$Temperatur)), mean))
R001_T2_Q3_T60 <- data.frame(tapply(R001_T2_Q3_T$Temperatur, rep(seq_along(R001_T2_Q3_T$Temperatur), each = 6, length.out = length(R001_T2_Q3_T$Temperatur)), mean))
R001_T2_P3_T60 <- data.frame(tapply(R001_T2_P3_T$Temperatur, rep(seq_along(R001_T2_P3_T$Temperatur), each = 6, length.out = length(R001_T2_P3_T$Temperatur)), mean))
R001_T2_Q4_T60 <- data.frame(tapply(R001_T2_Q4_T$Temperatur, rep(seq_along(R001_T2_Q4_T$Temperatur), each = 6, length.out = length(R001_T2_Q4_T$Temperatur)), mean))
R001_T2_P4_T60 <- data.frame(tapply(R001_T2_P4_T$Temperatur, rep(seq_along(R001_T2_P4_T$Temperatur), each = 6, length.out = length(R001_T2_P4_T$Temperatur)), mean))

R003_G1_Q1_T60 <- data.frame(tapply(R003_G1_Q1_T$Temperatur, rep(seq_along(R003_G1_Q1_T$Temperatur), each = 6, length.out = length(R003_G1_Q1_T$Temperatur)), mean))
R003_G1_P1_T60 <- data.frame(tapply(R003_G1_P1_T$Temperatur, rep(seq_along(R003_G1_P1_T$Temperatur), each = 6, length.out = length(R003_G1_P1_T$Temperatur)), mean))
R003_G1_Q2_T60 <- data.frame(tapply(R003_G1_Q2_T$Temperatur, rep(seq_along(R003_G1_Q2_T$Temperatur), each = 6, length.out = length(R003_G1_Q2_T$Temperatur)), mean))
R003_G1_P2_T60 <- data.frame(tapply(R003_G1_P2_T$Temperatur, rep(seq_along(R003_G1_P2_T$Temperatur), each = 6, length.out = length(R003_G1_P2_T$Temperatur)), mean))
R003_G1_Q3_T60 <- data.frame(tapply(R003_G1_Q3_T$Temperatur, rep(seq_along(R003_G1_Q3_T$Temperatur), each = 6, length.out = length(R003_G1_Q3_T$Temperatur)), mean))
R003_G1_P3_T60 <- data.frame(tapply(R003_G1_P3_T$Temperatur, rep(seq_along(R003_G1_P3_T$Temperatur), each = 6, length.out = length(R003_G1_P3_T$Temperatur)), mean))
R003_G1_Q4_T60 <- data.frame(tapply(R003_G1_Q4_T$Temperatur, rep(seq_along(R003_G1_Q4_T$Temperatur), each = 6, length.out = length(R003_G1_Q4_T$Temperatur)), mean))
R003_G1_P4_T60 <- data.frame(tapply(R003_G1_P4_T$Temperatur, rep(seq_along(R003_G1_P4_T$Temperatur), each = 6, length.out = length(R003_G1_P4_T$Temperatur)), mean))
R003_G2_Q1_T60 <- data.frame(tapply(R003_G2_Q1_T$Temperatur, rep(seq_along(R003_G2_Q1_T$Temperatur), each = 6, length.out = length(R003_G2_Q1_T$Temperatur)), mean))
R003_G2_P1_T60 <- data.frame(tapply(R003_G2_P1_T$Temperatur, rep(seq_along(R003_G2_P1_T$Temperatur), each = 6, length.out = length(R003_G2_P1_T$Temperatur)), mean))
R003_G2_Q2_T60 <- data.frame(tapply(R003_G2_Q2_T$Temperatur, rep(seq_along(R003_G2_Q2_T$Temperatur), each = 6, length.out = length(R003_G2_Q2_T$Temperatur)), mean))
R003_G2_P2_T60 <- data.frame(tapply(R003_G2_P2_T$Temperatur, rep(seq_along(R003_G2_P2_T$Temperatur), each = 6, length.out = length(R003_G2_P2_T$Temperatur)), mean))
R003_G2_Q3_T60 <- data.frame(tapply(R003_G2_Q3_T$Temperatur, rep(seq_along(R003_G2_Q3_T$Temperatur), each = 6, length.out = length(R003_G2_Q3_T$Temperatur)), mean))
R003_G2_P3_T60 <- data.frame(tapply(R003_G2_P3_T$Temperatur, rep(seq_along(R003_G2_P3_T$Temperatur), each = 6, length.out = length(R003_G2_P3_T$Temperatur)), mean))
R003_G2_Q4_T60 <- data.frame(tapply(R003_G2_Q4_T$Temperatur, rep(seq_along(R003_G2_Q4_T$Temperatur), each = 6, length.out = length(R003_G2_Q4_T$Temperatur)), mean))
R003_G2_P4_T60 <- data.frame(tapply(R003_G2_P4_T$Temperatur, rep(seq_along(R003_G2_P4_T$Temperatur), each = 6, length.out = length(R003_G2_P4_T$Temperatur)), mean))
R003_T1_Q1_T60 <- data.frame(tapply(R003_T1_Q1_T$Temperatur, rep(seq_along(R003_T1_Q1_T$Temperatur), each = 6, length.out = length(R003_T1_Q1_T$Temperatur)), mean))
R003_T1_P1_T60 <- data.frame(tapply(R003_T1_P1_T$Temperatur, rep(seq_along(R003_T1_P1_T$Temperatur), each = 6, length.out = length(R003_T1_P1_T$Temperatur)), mean))
R003_T1_Q2_T60 <- data.frame(tapply(R003_T1_Q2_T$Temperatur, rep(seq_along(R003_T1_Q2_T$Temperatur), each = 6, length.out = length(R003_T1_Q2_T$Temperatur)), mean))
R003_T1_P2_T60 <- data.frame(tapply(R003_T1_P2_T$Temperatur, rep(seq_along(R003_T1_P2_T$Temperatur), each = 6, length.out = length(R003_T1_P2_T$Temperatur)), mean))
R003_T1_Q3_T60 <- data.frame(tapply(R003_T1_Q3_T$Temperatur, rep(seq_along(R003_T1_Q3_T$Temperatur), each = 6, length.out = length(R003_T1_Q3_T$Temperatur)), mean))
R003_T1_P3_T60 <- data.frame(tapply(R003_T1_P3_T$Temperatur, rep(seq_along(R003_T1_P3_T$Temperatur), each = 6, length.out = length(R003_T1_P3_T$Temperatur)), mean))
R003_T1_Q4_T60 <- data.frame(tapply(R003_T1_Q4_T$Temperatur, rep(seq_along(R003_T1_Q4_T$Temperatur), each = 6, length.out = length(R003_T1_Q4_T$Temperatur)), mean))
R003_T1_P4_T60 <- data.frame(tapply(R003_T1_P4_T$Temperatur, rep(seq_along(R003_T1_P4_T$Temperatur), each = 6, length.out = length(R003_T1_P4_T$Temperatur)), mean))
R003_T2_Q1_T60 <- data.frame(tapply(R003_T2_Q1_T$Temperatur, rep(seq_along(R003_T2_Q1_T$Temperatur), each = 6, length.out = length(R003_T2_Q1_T$Temperatur)), mean))
R003_T2_P1_T60 <- data.frame(tapply(R003_T2_P1_T$Temperatur, rep(seq_along(R003_T2_P1_T$Temperatur), each = 6, length.out = length(R003_T2_P1_T$Temperatur)), mean))
R003_T2_Q2_T60 <- data.frame(tapply(R003_T2_Q2_T$Temperatur, rep(seq_along(R003_T2_Q2_T$Temperatur), each = 6, length.out = length(R003_T2_Q2_T$Temperatur)), mean))
R003_T2_P2_T60 <- data.frame(tapply(R003_T2_P2_T$Temperatur, rep(seq_along(R003_T2_P2_T$Temperatur), each = 6, length.out = length(R003_T2_P2_T$Temperatur)), mean))
R003_T2_Q3_T60 <- data.frame(tapply(R003_T2_Q3_T$Temperatur, rep(seq_along(R003_T2_Q3_T$Temperatur), each = 6, length.out = length(R003_T2_Q3_T$Temperatur)), mean))
R003_T2_P3_T60 <- data.frame(tapply(R003_T2_P3_T$Temperatur, rep(seq_along(R003_T2_P3_T$Temperatur), each = 6, length.out = length(R003_T2_P3_T$Temperatur)), mean))
R003_T2_Q4_T60 <- data.frame(tapply(R003_T2_Q4_T$Temperatur, rep(seq_along(R003_T2_Q4_T$Temperatur), each = 6, length.out = length(R003_T2_Q4_T$Temperatur)), mean))
R003_T2_P4_T60 <- data.frame(tapply(R003_T2_P4_T$Temperatur, rep(seq_along(R003_T2_P4_T$Temperatur), each = 6, length.out = length(R003_T2_P4_T$Temperatur)), mean))

I saw that it could be possible if I create a function but I have no Idea how. I am looking forward for an adequate help.

Thanks!

therock7
  • 25
  • 6
  • 3
    Why don't you add some **reproducible data** and **explain** what you are trying to do with the code? – Chris Ruehlemann May 13 '20 at 14:08
  • 2
    Perhaps you could help us understand the purpose of your code. At present, it looks like you're just creating a bunch of objects for no reason. Additionally, it will be much easier to help if you provide at least a sample of your data with `dput(Temperatur_Alle)` or if your data is very large `dput(Temperatur_Alle[1:20,])`. You can edit your question and paste the output. You can surround it with three backticks (```) for better formatting. See [How to make a reproducible example](https://stackoverflow.com/questions/5963269/) for more info. – Ian Campbell May 13 '20 at 14:10
  • 1
    Suggested duplicate: [How do I make a list of data frames](https://stackoverflow.com/a/24376207/903061). Having all those objects looks terrible. They should either be in a list or perhaps in a single data frame. – Gregor Thomas May 13 '20 at 14:11
  • 2
    Just to reiterate -- yes, certainly there are better ways than your current approach. However, it's not totally clear from your question what exactly your data is, and what you're trying to do. Some explanation on both fronts would go a long way to us helping you improve your code. – MichaelChirico May 13 '20 at 14:12
  • 1
    In this case, I'd encourage you to make a **very short** example. We don't need to see 100 near-identical lines to get the idea. Give us ~8 rows of sample input data for 2 subjects, 2 tests, and 2 timepoints, then show and explain the desired output. Something like `dput(droplevels(subset(Temperatur_Alle, Subject %in% c("R001", "R003"), Test %in% c("T1", "T2"), Timepoint %in% c("Q1", "P1"))))` – Gregor Thomas May 13 '20 at 14:13
  • Thanks everyone for your input. I have added an explanation of my thought behind this. I've you need more just tell me. Thanks – therock7 May 13 '20 at 14:36
  • Looks like you are calculating far more than you should. Keep the database, and apply a specific filter (or better yet, move to SQL commands) in a loop to generate the output table you want. – Carl Witthoft May 13 '20 at 14:52
  • @therock7 Do you want the average temperature by minute or a rolling mean of one minute? – Pierre Lapointe May 13 '20 at 15:00
  • There a couple of options. I would recommend starting with installing the "dplyr" package and reading the "Introduction to dplyr" vigenette. – Dave2e May 13 '20 at 15:23
  • @PierreLapointe by minute – therock7 May 13 '20 at 19:49
  • I think your question boils down to "how do I reduce this repetitive code?" The answer is: functions and/or iteration. Once you can do both problems like these are a cinch. That said, there are already plenty of resources out there to learn from, including on SO. –  May 14 '20 at 12:16

1 Answers1

1

Let me try an answer. I didn't use the example from your question. I understand that you want to get the average temperature per minute, per subject, per Timepoint and per Test.

Here's how to do that with dplyr. The first step is to create a date/time column up to minutes. I'm not interested in seconds so I'm not using ":S" in the as.POSIXct call.

Then I group_by Test, Timepoint, Subject, Datum_Zeit. The final step is to calculate the mean temperature for all these groups.

library(dplyr)
df %>%
   mutate(Datum_Zeit=as.POSIXct(paste(Datum, Zeit),format="%d.%m.%Y %H:%M")) %>%
   group_by(Test, Timepoint, Subject, Datum_Zeit) %>%
   summarise(Mean_Temp=mean(Temperatur))

# A tibble: 7 x 5
# Groups:   Test, Timepoint, Subject [4]
  Test  Timepoint Subject Datum_Zeit          Mean_Temp
  <chr> <chr>     <chr>   <dttm>                  <dbl>
1 G1    Q1        R014    2019-06-28 20:02:00      37.8
2 G1    Q1        R014    2019-06-28 20:03:00      37.8
3 G1    Q1        R015    2019-06-28 20:03:00      37.8
4 G1    Q1        R015    2019-06-28 20:04:00      36.7
5 G1    Q2        R014    2019-06-28 20:04:00      36.7
6 G1    Q2        R014    2019-06-28 20:05:00      36.9
7 G1    Q2        R015    2019-06-28 20:05:00      37.0

DATA

df <- read.table(text="Test Subject Datum   Zeit    Temperatur  Timepoint
G1  R014    28.06.2019  20:02:57    37.8    Q1
G1  R014    28.06.2019  20:03:07    37.8    Q1
G1  R014    28.06.2019  20:03:17    37.8    Q1
G1  R014    28.06.2019  20:03:27    37.7    Q1
G1  R014    28.06.2019  20:03:37    37.8    Q1
G1  R014    28.06.2019  20:03:47    37.7    Q1
G1  R015    28.06.2019  20:03:57    37.8    Q1
G1  R015    28.06.2019  20:04:06    36.8    Q1
G1  R015    28.06.2019  20:04:16    36.4    Q1
G1  R015    28.06.2019  20:04:26    36.9    Q1
G1  R014    28.06.2019  20:04:36    36.22   Q2
G1  R014    28.06.2019  20:04:46    37  Q2
G1  R014    28.06.2019  20:04:56    36.80666667 Q2
G1  R014    28.06.2019  20:05:06    36.85666667 Q2
G1  R014    28.06.2019  20:05:16    36.90666667 Q2
G1  R015    28.06.2019  20:05:26    36.95666667 Q2
G1  R015    28.06.2019  20:05:36    37.00666667 Q2
G1  R015    28.06.2019  20:05:46    37.05666667 Q2
G1  R015    28.06.2019  20:05:56    37.10666667 Q2", header=TRUE,stringsAsFactors=FALSE) 
Pierre Lapointe
  • 16,017
  • 2
  • 43
  • 56