Automatize o qui-quadrado em categorias e colunas

Eu tenho um quadro de dados de pesquisa contendo várias perguntas (colunas) codificadas como 1 = concordo / 0 = discordo. Os entrevistados (linhas) são categorizados de acordo com as métricas "idade" ("jovem", "médio", "antiga"), "região" ("Leste", "Médio", "Oeste"), etc. Existem cerca de 30 categorias no total (3 idades, 3 regiões, 2 gêneros, 11 ocupações, etc.). Dentro de cada métrica, as categorias não se sobrepõem e têm tamanhos diferentes.

Isso simula uma versão reduzida do conjunto de dados:

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))

Posso usar o qui-quadrado para testar se as respostas, digamos, no Ocidente diferem significativamente da amostra total, para Q15a, com:

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

Quero testar todas as categorias com relação à amostra total para Q15a e depois para ~ 20 outras perguntas. Como existem cerca de 30 testes por pergunta, quero encontrar uma maneira (eficiente ou não) de automatizar isso, mas estou lutando para ver como fazer o R fazer isso sozinho ou como escrever um loop para percorrer as categorias. Eu pesquisei [1] e fui desviado para o teste de comparação por pares com pairwise.prop.test (), mas ainda não encontrei nada que realmente responda a isso.

[1] perguntas semelhantes, mas não duplicadas (ambas são testes em colunas):

Usando loops para fazer o teste do qui-quadrado em R

Análise de Chi Square usando o loop for em R