2012-04-06 5 views
3

Когда я импортировал файл с длинными числовыми идентификаторами из файла csv в SAS, я хотел преобразовать числа в текст. Но эти числа были сохранены в научной нотации, поэтому, когда они конвертируются, последние цифры все превращаются в нули.SAS - как сохранить фактические числа при импорте из файла csv с номерами в научной нотации

Например, 7.3139908E14 оказался иным 731399080000000, когда он должен быть 731399076376199.

Есть ли вообще обойти это? В конечном счете мне нужно сделать некоторую дедупликацию, а затем экспортировать этот файл в виде текстового файла.

Спасибо!

+3

Это не похоже на проблему SAS, но проблема с вашим файлом csv. Если вы посмотрите на файл csv, вы видите 7.3139908E14 или 731399076376199? Если это первый тип, SAS не может знать, каковы последние цифры. Вы создали CSV-файл в Excel? Если это так, вам нужно отформатировать его по-другому, поэтому он не усекает переменные. – itzy

+0

благодарю вас за ответ! Проблема в том, что я экспортирую 1,5 миллиона строк данных из базы данных, и я попытался сохранить их как текстовый файл и файл csv. С текстовым файлом я могу открыть его, но я не могу изменить формат. С csv-файлом я могу изменить формат технически, но он слишком велик, что я не могу полностью его открыть. – user1318306

+0

Можете ли вы опубликовать несколько строк из .txt-файла и несколько из .csv? – cmjohns

ответ

1

Скажите ваши данные выглядели как (т.е. числового идентификатора во второй позиции CSV):

blah;7313990763761997;blah 

Вы могли бы сделать простое чтение файла, строка за строкой и получить доступ к входному буферу непосредственно (переменная _INFILE_) :

filename mycsv "\path\to\mycsv.csv"; 

data mydata; 
    infile mycsv; 
    input; 
    length idvar $16; 
    idvar=scan(_infile_,2,";"); 
run; 

Это сохранит номер в текстовом формате, если это все, что вы хотите сделать.