Préserver un grand nombre
Je suis en train de lire un fichier csv qui a des codes à barres dans la première colonne, mais lorsque R devient en un ensemble de données.cadre, il convertit “1665535004661” à “1.67 E+12”. Est-il un moyen de préserver ce nombre dans un format de nombre entier? J'ai essayé affectation d'une classe de “double”, mais cela ne fonctionne pas, ni ne affectation d'une classe de “caractère”. Une fois qu'il est dans la 1.67 E+12 format toute tentative de convertir un entier renvoie “167000000000”.
Grâce,
J--
OriginalL'auteur James | 2012-05-22
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas un "1.67 E+12 format", il ne peut pas imprimer entièrement en utilisant les valeurs par défaut. R est-ce la lecture en est très bien et le nombre entier est là.
Voir, les chiffres étaient là tout le temps. Ils ne se perde pas, sauf si vous avez un très grand nombre de chiffres. Le tri sur ce que vous avez apporté dans marchera et vous pouvez simplement appeler explicitement print() avec les chiffres de voir vos données.cadre au lieu d', implicitement, par la saisie d'un nom.
options()
. Comme point de référence, il faut lire et tenir compte de l'avertissement dans?print.default
que la mise en œuvre au >= 16 chiffres commence à devenir une plate-forme spécifique de la question de la mise en œuvre desprintf()
commence à différer sur la base du code C.Le même est vrai si vous utilisez les options(). C'est seulement une sortie par défaut. Je pense qu'il serait mieux si vous avez été explicite à ce sujet dans votre réponse. Comme il est c'est plutôt vague. En essayant de lire naïf, je me demandais si les chiffres de l'option de change juste combien de chiffres sont conservés, comment ils lire?... quoi?
Bon point - édité ma réponse pour être plus explicite à ce sujet. Vous pouvez le peaufiner davantage si vous le pensez nécessaire. Cheers! - Chase
OriginalL'auteur John
Ramasser sur ce que vous avez dit dans les commentaires, vous pouvez importer directement le texte comme un personnage en spécifiant le
colClasses
dansread.table()
. Par exemple:Alternativement (et pour d'autres usages), vous pouvez spécifier le
digits
variable sousoptions()
. La valeur par défaut est de 7 chiffres et de la plage acceptable est 1-22. Pour être clair, la définition de cette option ne modifie en rien ou modifie les données sous-jacentes, il se contente de contrôle la façon dont il est affiché à l'écran lors de l'impression. À partir de la page d'aide pour?options
:Exemple pour illustrer cela:
À la chair ce complètement et d'en tenir compte le cas lors de la configuration d'un paramètre global n'est pas préférable, vous pouvez spécifier les chiffres directement comme argument à
print(foo, digits = bar)
. Vous pouvez lire plus sur ce en vertu de?print.default
. C'est ce que Jean décrit dans sa réponse, le crédit doit aller à lui pour l'éclairage de cette nuance.OriginalL'auteur Chase
essaie de travailler avec colClasses="caractère"
http://stat.ethz.ch/R-manual/R-devel/library/utils/html/read.table.html
Ont un coup d'oeil à ce lien.
OriginalL'auteur rockswap
De l' ?est.entier page:
"Note que les implémentations actuelles de R utiliser les nombres entiers de 32 bits pour l'entier de vecteurs, de sorte que la portée de représentable entiers est limité à environ +/-2*10^9?
Vous voulez package Rmpfr.
OriginalL'auteur 42-
Prendre un coup d'oeil à la
int64
package: Apportant de données de 64 bits à la R.x <- "1665535004661"
OriginalL'auteur Alex Reynolds
Vous pouvez utiliser les chiffres des arguments lorsque vous faites
read.csv
. Ainsi, par exemple:Cela permet de préserver la valeur des entiers longs et ne plaisante pas avec leur représentation lorsque vous importez les données.
OriginalL'auteur Aditi Kumar
Puisque vous n'êtes pas l'exécution de l'arithmétique sur cette valeur, le caractère est approprié. Vous pouvez utiliser le colClasses argument pour définir les différentes classes pour chaque colonne, ce qui est probablement mieux que d'utiliser tous les caractères.
de données.csv:
Lire le caractère, puis les entiers:
OriginalL'auteur Matthew Lundberg