Répéter une séquence répétée
Nous voulons obtenir un tableau qui ressemble à ceci:
1,1,1,2,2,2,3,3,3,4,4,4,1,1,1,2,2,2,3,3,3,4,4,4,1,1,1,2,2,2,3,3,3,4,4,4
Quelle est la meilleure façon de le faire?
source d'informationauteur Fabian Stolz
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire avec un seul
rep
appel. Leeach
ettimes
paramètres sont évalués de manière séquentielle avec laeach
être fait en premier.Ou, plus simple (en supposant que vous voulez dire un vecteur, pas un tableau)
Comme ceci:
rep(x, N) retourne un vecteur de répéter x N fois. sapply s'applique la fonction à chaque élément du vecteur 1:4 séparément, en répétant chaque élément 3 fois consécutivement.
Cela ne fonctionnera que si votre séquence de nombres augmente par incréments de 1. Cependant, si vous souhaitez inclure une séquence de chiffres qui augmentent par un intervalle défini (par exemple de 0 à 60 par 15) vous pouvez le faire:
Vous avez juste à changer le nombre de fois que vous le souhaitez répéter.
Ici est une méthode à l'aide de la matrice de manipulation avec
aperm
. L'idée est de construire un tableau contenant les valeurs. Les réorganiser afin qu'elles correspondent à la sortie désirée à l'aide deaperm
et puis "déplier" le tableau avecc
.