2017-08-21 4 views
-2

J'ai un jeu de données avec ~ 100 colonnes et ~ 1000 lignes. Pour chaque colonne sauf la dernière, je voudrais créer un onglet croisé des valeurs et un facteur de regroupement, qui est la dernière colonne de l'ensemble de données. Je voudrais ensuite effectuer un test exact de Fisher sur chacun des onglets croisés.Comment faire une boucle sur des colonnes dans R dans un ensemble de données pour créer des onglets croisés pour chaque colonne et un facteur de regroupement, puis appliquer le test exact d'un pêcheur?

J'ai tout cela travailler dans un format hardcoded, mais je cherche à utiliser une boucle ou une fonction pour nettoyer et optimiser le code

+0

Veuillez lire [ask]! Donnez un [mcve], c'est-à-dire éditez votre question. Il me semble que vous cherchez la fonction 'aggregate()' ou similaire. – jogo

Répondre

0

Vous pouvez utiliser lapply() à boucle sur vos 99 colonnes et créer une liste de 99 Tableaux de contingence. Ensuite, utilisez à nouveau lapply() pour boucler votre liste de tables et créer une table de 99 résultats de fisher.test().

mytables <- lapply(df[, 1:99], function(x) table(x, df[, 100])) 

mytests <- lapply(mytables, fisher.test)