Le format des nombres, l'écriture 1e-5 au lieu de 0.00001
J'ai utilisé read.table
de lire un fichier qui contient des nombres tels que 0.00001
quand j'écris avec write.table
ces nombres apparaissent comme 1e-5
Comment puis-je garder l'ancien format?
Vous devez vous connecter pour publier un commentaire.
Ce faire, vous pouvez convertir vos numéros de chaînes avec mise en forme que vous avez besoin, puis à l'aide de l'argument
quote = FALSE
dans l'appel àwrite.table
.Notez que vous ne devriez pas avoir à modifier le format des numéros de votre fichier. À peu près chaque morceau de logiciel scientifique et d'une feuille de calcul comprend la notation scientifique des nombres, et a également des nombre options de mise en forme afin que vous puissiez voir comment vous choisissez.
quote = FALSE
va cesser de tous caractère et facteur de colonnes d'être cités.Je voudrais juste changer le
scipen
option avant d'appelerwrite.table
. Notez qu'il sera également modifier la façon dont les nombres sont affichés lors de l'impression à la console.withr::with_options(c(scipen = 10), write.table(foo, "foo.txt")
.Si l'entrée est un mélange de la notation scientifique et explicite de la notation des nombres, alors vous allez écrire votre propre analyseur de lire les chiffres et garder la trace de ceux qui ont été dans les formats. En fait, vous aurez envie de garder une représentation de chaîne de ces nombres se trouvant autour de sorte que vous pouvez écrire de nouveau exactement ce qui était dans l'entrée.
Toutefois, si vous voulez juste pour écrire.tableau() avec toujours explicite notation, essayez.
Pour un maximum de contrôle en boucle sur toutes les lignes et de les imprimer dans un fichier texte formaté avec sprintf