【问题标题】:Is there a possibility for shortening my code?是否有可能缩短我的代码?
【发布时间】:2020-08-29 18:29:32
【问题描述】:

我有一个非常大的代码,每次都发生相同的情况,但使用不同的过滤器。有没有办法让它更短,以便更容易更改过滤器和添加新主题?

这背后的背景如下:我有一个带有核心温度值的大型数据框。我有 24 个主题,每 10 秒有一个值。这些日期是在每 4 个季度的两场比赛中收集的。最后,我希望有一个数据框,其中包含每个主题在一分钟内的核心温度平均值,并将其分成不同的游戏和游戏的部分。

我的数据摘录如下所示:


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
[...]

这是我的代码:

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))

我看到如果我创建一个函数是可能的,但我不知道如何。 我期待获得足够的帮助。

谢谢!

【问题讨论】:

  • 你为什么不添加一些可重现的数据解释你想用代码做什么?
  • 也许您可以帮助我们了解您的代码的用途。目前,您似乎只是无缘无故地创建了一堆对象。此外,如果您使用dput(Temperatur_Alle) 提供至少一个数据样本,或者如果您的数据非常大dput(Temperatur_Alle[1:20,]),那么提供帮助会容易得多。您可以编辑您的问题并粘贴输出。您可以用三个反引号 (```) 将其括起来以获得更好的格式。请参阅How to make a reproducible example 了解更多信息。
  • 建议重复:How do I make a list of data frames。拥有所有这些对象看起来很糟糕。它们应该在一个列表中,或者可能在一个数据框中。
  • 重申一下——是的,当然有比您当前的方法更好的方法。但是,您的问题并不完全清楚您的数据到底是什么,以及您要做什么。对这两个方面的一些解释将对我们帮助您改进代码大有帮助。
  • 在这种情况下,我鼓励你做一个非常简短的例子。我们不需要看到 100 条几乎相同的线来获得这个想法。为我们提供 2 个受试者、2 个测试和 2 个时间点的约 8 行样本输入数据,然后显示并解释所需的输出。类似dput(droplevels(subset(Temperatur_Alle, Subject %in% c("R001", "R003"), Test %in% c("T1", "T2"), Timepoint %in% c("Q1", "P1"))))

标签: r function filter


【解决方案1】:

让我尝试一个答案。我没有使用您问题中的示例。我了解您希望获得每分钟、每个主题、每个时间点和每个测试的平均温度。

下面是使用dplyr 的方法。第一步是创建一个最多分钟的日期/时间列。我对秒数不感兴趣,所以我没有在as.POSIXct 通话中使用“:S”。

然后我group_by 测试,时间点,主题,基准时间。最后一步是计算所有这些组的mean 温度。

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

数据

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) 

【讨论】:

    猜你喜欢
    • 2022-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多