Comment convertir un nombre entier en un vecteur binaire?
Comment convertir un nombre entier en binaire vecteur à l'aide de R?
Par exemple :
number <- 11
[1] 1 0 1 1
quelle est la manière la plus rapide possible de la méthode de conversion (à l'aide de R code ou certaines fonctions existantes de paquets) si j'ai besoin de convertir l'ensemble du vecteur de nombres (d'une valeur minimum = 0, maximum =300) dans la matrice binaire ?
source d'informationauteur Qbik
Vous devez vous connecter pour publier un commentaire.
Il y a le
intToBits
fonction qui convertit un nombre entier à un vecteur de 32 raws, de sorte que vous pouvez le faire:Ce DONC, après les suggère la
intToBits
fonction. Je définir la fonctionnumber2binary
qui inclut un argumentnoBits
pour contrôler combien de bits sont retournés. La norme est de retour 32 bits.Et pour quelques exemples:
Une solution que j'ai trouvé dans "Le R du Livre" par M. J. Crawley est la fonction suivante:
Vous pouvez utiliser la fonction suivante pour que, sur la base
intToBit
:La première ligne convertit le intToBits sortie numérique 0 et 1, et met la commande directement. La deuxième ligne vérifie que les valeurs doivent être conservés, comme suit:
match
. Si il n'y a pas de 1 à trouver, vous demandezmatch
de retourner la longueur de votretmp
vecteur.seq_len
) de 1 à la position précédente de la première occurence de1
dans letmp
vecteurtmp
vecteurPour montrer cela fonctionne :
Si vous voulez retourner une séquence binaire, c'est à dire un vecteur de 1 et de 0, alors cette fonction le fera pour vous, mais il ne peut prendre 1 à la fois.
Essayer le CRAN package "binaryLogic"
Également disponibles: translation, rotation, graycode etc.
Et l'autre:
Donc intToBin(10) renvoie
Et si vous voulez chaîne, au lieu de vecteur