J'ai des tables de contingence de tailles différentes. Je voudrais les indexer en utilisant un ensemble de valeurs d'un ensemble de données. Cependant, myTable[c(5,5,5,5)]
ne fait clairement pas ce que je veux. Comment obtenir c(5,5,5,5)
pour lire myTable[5,5,5,5]
?Indexation d'une table multidimensionnelle à l'aide du vecteur colonne
6
A
Répondre
3
Faisant suite sur la réponse de @ ttmaccer: cela fonctionne à cause du paragraphe (légèrement) obscur dans ?"["
qui se lit comme suit:
When indexing arrays by ‘[’ a single argument ‘i’ can be a
matrix with as many columns as there are dimensions of ‘x’;
the result is then a vector with elements corresponding to
the sets of indices in each row of ‘i’.
L'effet de l'utilisation dans t(ii)
ii <- c(5,5,5,5)
a[t(ii)]
est de convertir ii
à une matrice 1x4 qui [
interprète comme une matrice, comme décrit ci-dessus; a[matrix(ii,nrow=1)]
serait plus explicite mais moins compact.
La bonne chose au sujet de cette approche (en plus d'éviter les aspects magiques-semblant de do.call
) est que cela fonctionne en parallèle pour plus d'un ensemble d'indices, comme dans
jj <- matrix(c(5,5,5,5,
6,6,6,6),byrow=TRUE,nrow=2)
a[jj]
## [1] 4445 5556
2
Si cette construction, à l'aide do.call()
, devrait faire ce que vous voulez que je comprends bien votre question,:
## Create an example array and a variable containing the desired index
a <- array(1:1e4, dim = c(10, 10, 10, 10))
ii <- c(5, 5, 5, 5)
## Use do.call to extract the desired element.
do.call("[", c(list(a), ii))
# [1] 4445
L'appel ci-dessus fonctionne parce que les éléments suivants sont tous équivalents:
a[5, 5, 5, 5]
`[`(a, 5, 5, 5, 5)
do.call("[", list(a, 5, 5, 5, 5))
do.call("[", c(list(a), ii))
Questions connexes
- 1. Indexation multidimensionnelle d'images
- 2. Interconversion Numpy entre indexation multidimensionnelle et linéaire
- 3. Indexation en vecteur
- 4. Indexation élégante jusqu'à la fin du vecteur/matrice
- 5. indexation vecteur pour faire court
- 6. Colonne Lucene Indexation CLOB
- 7. NSMutableArray multidimensionnelle, obtenir une colonne
- 8. Lua multidimensionnelle appel de table
- 9. MATLAB: indexation vectorisée confondue avec vecteur * matrice
- 10. Java: mise à l'échelle multidimensionnelle?
- 11. Mise à l'échelle multidimensionnelle
- 12. Impression du vecteur de colonne au vecteur de ligne?
- 13. Indexation raisonnable efficace pour la recherche de vecteur numérique?
- 14. SQL indexation - colonne calculée vs champ utilisé par colonne calculée
- 15. Indexation d'une seule valeur de colonne MySQL
- 16. Indexation sur la colonne BigInt dans MySQL
- 17. Indexation d'une partition de table dans MySql
- 18. MATLAB - Ligne-vecteur efficace * Matrix * colonne-vecteur
- 19. Indexation de table et étendue par défaut
- 20. mysql indexation partielle, indexation inverse
- 21. Fulltext Indexation sur MyISAM, colonne unique vs indexation de plusieurs colonnes
- 22. Indexation du prénom et du nom
- 23. impression multidimensionnelle tableau
- 24. Indexation du référentiel CVS
- 25. indexation d'une grande table dans SQL SERVER
- 26. indexation de table mysql sur l'horodateur nul
- 27. Problème lors de la commande - Indexation d'une matrice multidimensionnelle en Javascript
- 28. tableau inverse Aplati à multidimensionnelle
- 29. R: mise à l'échelle multidimensionnelle
- 30. conversion d'une table ctab() multidimensionnelle au format LaTeX
Merci pour l'expansion sur @ la réponse de ttmacer . Très agréable. –