Автоматизировать хи-квадрат по категориям и столбцам

У меня есть фрейм данных опроса, содержащий несколько вопросов (столбцов), закодированных как 1 = согласен / 0 = не согласен. Респонденты (строки) классифицируются по метрикам «возраст» («молодой», «средний», «старый»), «регион» («восток», «средний», «запад») и т. Д. Существует около 30 категорий. всего (3 возраста, 3 региона, 2 пола, 11 профессий и т. д.). Внутри каждой метрики категории не перекрываются и имеют разные размеры.

Это имитирует урезанную версию набора данных:

n<-400
set.seed(1)
data<-data.frame(age=sample(c('young','middle','old'),n,replace=T),region=sample(c('East','Mid','West'),n,replace=T),gender=sample(c('M','F'),n,replace=T),Q15a=sample(c(0,1),n,replace=T),Q15b=sample(c(0,1),n,replace=T))

Я могу использовать хи-квадрат, чтобы проверить, отличаются ли ответы, скажем, на Западе, от общей выборки для Q15a следующим образом:

attach(data)
chisq.test(table(subset(data,region=='West')$Q15a),p=table(Q15a),rescale.p=T)

Я хочу проверить все категории по общей выборке для Q15a, а затем еще около 20 вопросов. Поскольку на вопрос приходится около 30 тестов, я хочу найти способ (эффективный или иной) автоматизировать это, но я изо всех сил пытаюсь понять, как заставить R сделать это самому или как написать цикл для циклического перемещения по категориям. Я искал [1] и отвлекся на тестирование парных сравнений с pairwise.prop.test (), но пока не нашел ничего, что действительно отвечало бы этому.

[1] похожие, но не повторяющиеся вопросы (оба теста по столбцам):

Использование циклов для теста хи-квадрат в R

Анализ хи-квадрат с использованием для цикла в R

Ответы на вопрос(2)

Ваш ответ на вопрос