Ho ottenuto (e riceverò in futuro) molti file CSV che usano il punto e virgola come delimitatore e la virgola come separatore decimale. Finora non sono riuscito a scoprire come importare questi file in SAS utilizzando l'importazione di proc - o in qualsiasi altro modo automatizzato senza la necessità di fare confusione con i nomi delle variabili manualmente.Come importare un file CSV con delimitatore come ";" e separatore decimale come "," in SAS?
Crea alcuni dati di esempio:
%let filename = %sysfunc(pathname(work))\sap.csv;
data _null_;
file "&filename";
put 'a;b';
put '12345,11;67890,66';
run;
Il codice importazione:
proc import out = sap01
datafile= "&filename"
dbms = dlm;
delimiter = ";";
GETNAMES = YES;
run;
Dopo l'importazione di un valore per la "quantità" variabile come 350,58 (che corrisponde a 350,58 nel Formato USA) sembrerebbe 35.058 (ovvero trentacinque e ...) in SAS (e dopo la riesportazione verso l'EXCEL tedesco sembrerebbe 35.058,00). Una soluzione semplice ma sporca sarebbe il seguente:
data sap02; set sap01;
AMOUNT = AMOUNT/100;
format AMOUNT best15.2;
run;
Mi chiedo se c'è un modo semplice per definire il separatore decimale per il CVS-import (simile alle specifiche del delimitatore). ..o qualsiasi altra soluzione "più pulita" rispetto alla mia soluzione alternativa. Molte grazie in anticipo!
35.358,00, questo appare come una variabile stringa. È 35.058,00? –
grazie, ho modificato il mio post! – Joz