РЕДАКТИРОВАТЬ : после изменения ОП:
С dplyr
:
df %>%
rename(Date=row.names) %>%
group_by(Date) %>%
summarise_at(vars(contains("S")),list(Mean=mean))
# A tibble: 2 x 5
Date Station1_Mean Station2_Mean Station3_Mean Station4_Mean
<chr> <dbl> <dbl> <dbl> <dbl>
1 01.01.2017 30 46.7 32.3 25.7
2 02.01.2017 26 45.7 30.3 19.3
Данные:
df<-read.table(text=" Time Station1 Station2 Station3 Station4
01.01.2017 07:00 27 38 26 25
01.01.2017 14:00 22 49 25 16
01.01.2017 21:00 41 53 46 36
02.01.2017 07:00 22 38 26 19
02.01.2017 14:00 20 54 35 13
02.01.2017 21:00 36 45 30 26",header=T,
as.is=T,fill=T,row.names = NULL)
Оригинальный ответ: (Получите среднее значение для каждого третьего ряда)
Мы можем сделать следующее (я отфильтровал, чтобы удалить нечисловые значения):
colMeans(df[seq(0,nrow(df),3),-c(1,2)])
Station1 Station2 Station3 Station4
38.5 49.0 38.0 31.0
Данные:
df<-structure(list(row.names = c("01.01.2017", "01.01.2017", "01.01.2017",
"02.01.2017", "02.01.2017", "02.01.2017"), Time = c("07:00",
"14:00", "21:00", "07:00", "14:00", "21:00"), Station1 = c(27L,
22L, 41L, 22L, 20L, 36L), Station2 = c(38L, 49L, 53L, 38L, 54L,
45L), Station3 = c(26L, 25L, 46L, 26L, 35L, 30L), Station4 = c(25L,
16L, 36L, 19L, 13L, 26L)), class = "data.frame", row.names = c(NA,
-6L))