# Meta-analysis and meta-regression results don't agree

In the context of a (multilevel) meta-analysis, I want to caluclate grand effect size estimates for subsets of data corresponding to the levels of a categorical variable. Using the example below, I'd like to calculate the grand effect size for Gifted students and NotGifted students. I thought of approaching this two ways: run two meta-analyses (one with Gifted students, the other with NotGifted students), or include Gifted status as a moderator in an analysis inclusive of all students (i.e. a meta-regression (though I knwo this term is frowned upon)). To my confusion, the two approaches produce different values for effect sizes for Gifted and NotGifted students. I have two questions.

Why are the results of the two methods different? Which approach is better, i.e. which is a better estimator of the true effect size for Gifted or NotGifted students?

Any help would be greatly appreciated. Thank you

library(metafor)

set.seed(123)
df <- data.frame(
School = rep(1:5, each = 4),
Class = rep(1:2, times = 10),
Pupil = rep(letters[1:4], times = 5),
Gifted = sample(c('Yes', 'No'), size = 20, replace = TRUE),
yi = rnorm(20, 70, 15),
V = rnorm(20, mean = 5, 2))

Gifted <- rma.mv(yi, V, random = list(~ 1 | Class, ~ 1 | School),
method = 'REML', data = subset(df, Gifted == 'Yes'))
NotGifted <- rma.mv(yi, V, random = list(~ 1 | Class, ~ 1 | School),
method = 'REML', data = subset(df, Gifted == 'No'))
Regression <- rma.mv(yi ~ Gifted, V, random = list(~ 1 | Class, ~ 1 | School),
method = 'REML', data = df)

matrix(round(c(NotGifted$b, Gifted$b, Regression$b[1], Regression$b[1] + Regression\$b[2]), 3),
2, 2, TRUE, list(' ' = c('Subset', 'Regression'), ' ' = c('NotGifted', 'Gifted')))