Вы можете использовать bind_rows
для добавления строк в конец фрейма данных или rbind
с матрицей:
library(dplyr)
df <-
tibble::tribble(
~Elec1, ~Elec2, ~Dyad, ~response,
1, 1, 1, 0.09312585,
1, 1, 2, 0.09561456,
1, 1, 3, 0.03530233,
1, 1, 4, 0.08787908,
1, 1, 5, 0.15917199,
1, 1, 6, 0.02174757,
1, 2, 1, 0.2,
1, 2, 2, 0.3,
1, 2, 3, 0.23,
1, 2, 4, 0.43,
1, 2, 5, 0.44,
1, 2, 6, 0.55
)
summary_df <-
tribble(~Elec1, ~Elec2, ~estimate, ~pvalue)
distinct_pairs <-
df %>%
select(Elec1, Elec2) %>%
distinct()
for (i in 1:nrow(distinct_pairs)) {
model_coefs <-
df %>%
inner_join(distinct_pairs[i, ], by = c("Elec1", "Elec2")) %>%
glm(data = ., formula = response ~ Dyad, family = Gamma(link = "inverse")) %>%
summary() %>%
coef()
summary_df <-
summary_df %>%
bind_rows(
c(distinct_pairs[i, ],
estimate = model_coefs[2, 3],
pvalue = model_coefs[2, 4])
)
}
Я уверен, что есть более чистые способы решения проблемы, но это должно дать вам несколько идей.