Qu'est-ce que les développeurs rs expérimentés considèrent la manière la plus efficace (mais toujours lisible) de construire une matrice avec un nombre donné de lignes et de colonnes à partir d'une fonction donnée, telle que par exemple. A_ij = onefun (i, j) avec 1 <= i <= lignes, 1 <= j <= j <= cols?
Puisque je ne pouvais pas trouver quelque chose dans la documentation que j'ai proposée avec p> qui semble stupide et lent à moi. Toute amélioration (en particulier une doublure) Bienvenue! :) p> p>
3 Réponses :
Je pense que vous recherchez Vous pouvez gagner beaucoup en lisibilité (au moins si vous n'avez pas à aller chercher externe (SEQ (SEQ (Rows), SEQ (COLS), FN) CODE> (ou comme suggéré ci-dessous, externe (SEQ_LEN (lignes), SEQ_LEN (COLS) ), fn) code>: aurait besoin de quelques exemples pour voir combien de différence faite). P>
? externe code> pour savoir ce qui se passe) de cette façon, mais je ne pense pas vraiment que vous économiser beaucoup de temps. Quelque chose d'intelligent et plus efficace pourrait être possible si votre fn code> est vectorisé pour commencer: est-ce? P>
Ou avec SEQ_LEN code> plutôt que SEQ code>.
Merci de votre réponse à celle-ci si rapidement! En ce qui concerne la vectorisation de $ fn $ est concernée ... Malheureusement pas. Comme vous pourriez penser que je suis assez nouveau à R (je suis habitué à Numpy / Scipey, Maple, etc.) C'est pourquoi je n'ai pas encore découvert comment vectoriser les fonctions.
regarder sur externe code>:
Si vous n'écrivez simplement aucune fonction, vous pouvez obtenir des erreurs appelant 'externe', alors vectorisez-le en premier.
fn <- function(i,j){
return(prop.test(c(tables[i,1], tables[j,1]), c(sum(tables[i,]), sum(tables[j,])))$p.value)
}
Pourriez-vous fournir un exemple d'une telle fonction?
Toute fonction qui ne fonctionne pas lorsqu'elle est appelée sur un vecteur, celle que j'ai rencontrée dans ce problème était (ajoutée en édition)