Есть несколько способов прийти к желаемому фрейму данных.Я воспроизвел ваш фрейм данных:
df <- data.frame(S = c(rep(1,6),rep(2,6)),
G = c(rep("A",6),rep("B",6)),
T = rep(seq(30,80,10),2),
A = c(25, 20, 15, 20, 5, 20, 10, 10, 10, 20, 20, 20))
Классический способ может быть:
df[df$T == 40 | df$T == 70,]
Более современный tidyverse путь -
library(tidyverse)
df %>% filter(T == 40 | T ==70)
Если вы хотите получить среднее значение каждой группы G, отфильтрованное для T == 40 и 70:
df %>% filter(T == 40 | T == 70) %>%
group_by(G) %>%
mutate(A = mean(A))