library(tidyverse)
Как рассчитать средние значения для следующих глубин: 1-2, 1-3, 1-4,…, 1-10 для переменных y и z.Обратите внимание, что в моих реальных данных у меня нет одинаковой глубины пространства, поэтому я не могу по-настоящему использовать rollapply напрямую.
set.seed(123)
df <- data.frame(depth = seq(1, 10, length.out = 100), y = rnorm(100), z = rnorm(100))
head(df)
#> depth y z
#> 1 1.000000 -0.56047565 -0.71040656
#> 2 1.090909 -0.23017749 0.25688371
#> 3 1.181818 1.55870831 -0.24669188
#> 4 1.272727 0.07050839 -0.34754260
#> 5 1.363636 0.12928774 -0.95161857
#> 6 1.454545 1.71506499 -0.04502772
Пример желаемых выходов
df %>%
filter(between(depth, 1, 2)) %>%
summarise_at(vars(y, z), mean) %>%
mutate(start_depth = 1, end_depth = 2)
#> y z start_depth end_depth
#> 1 0.1941793 -0.3271552 1 2
df %>%
filter(between(depth, 1, 3)) %>%
summarise_at(vars(y, z), mean) %>%
mutate(start_depth = 1, end_depth = 3)
#> y z start_depth end_depth
#> 1 0.02263796 -0.3699128 1 3
df %>%
filter(between(depth, 1, 4)) %>%
summarise_at(vars(y, z), mean) %>%
mutate(start_depth = 1, end_depth = 4)
#> y z start_depth end_depth
#> 1 0.01445704 -0.1993295 1 4
И так далее ... Создано в 2018-10-23 пакетом Представить (v0.2.1)