2017-09-28 9 views
1

J'essaie d'enregistrer une variable numeric-with-decimal-places (f8.6) à partir d'un fichier SPSS dans un fichier ASCII fixe. Le but est de l'écrire dans certaines colonnes de l'ASCII (21 à 30).SPSS enregistrer le nombre décimal en ASCII

WRITE OUTFILE='C:\misc\ascii.dat' 
     ENCODING='UTF8' 
     TABLE /1 
    variable 21-30. 
exe. 

écrit dans les positions correctes, mais pas avec les décimales.

variable 21-30 (f) 

fait la même chose.

variable (f8.6) 

enregistre avec décimales, mais sur les positions 1 à 10.

variable 21-30 (f8.6) 

provoque une erreur, car apparemment vous ne pouvez pas spécifier les colonnes et le format.

Je connais deux solutions de contournement, mais les deux impliquent l'édition de données supplémentaires, que je préfère ne pas faire:

  1. variable Convertir en chaîne et de l'enregistrer sous forme de chaîne - mais je ne suis pas sûr au sujet des implications (codage, décimales, ou quoi que ce soit d'autre que je ne considère même pas)

  2. ajouter une variable chaîne vide avec une longueur de 20 avant ma variable.

Mais existe-t-il un moyen simple de le faire, sans solutions de contournement?

Répondre

1

Vous pouvez ajouter les 20 places dans la commande elle-même, comme ceci:

WRITE OUTFILE='C:\misc\ascii.dat' 
     ENCODING='UTF8' 
     TABLE/'     ' YourNumVar (f8.6) . 
exe. 
+0

vrai, cela est une autre solution, ce qui pourrait devenir aussi peu pratique que les autres si les colonnes où je dois ma variable changeront. Par exemple, si j'ai besoin de l'écrire sur 151-160 ou des milliers :) –

+1

C'est vrai, je vois votre point. Je ne connais pas une meilleure façon de le faire moi-même - Je vote pour votre solution de contournement d'ajouter une variable de texte vide avant 'YourNumVar'. –