मुझे कई सीएसवी फाइलें मिलती हैं (और भविष्य में प्राप्त होंगी) अर्धविराम का उपयोग डेलीमीटर और अल्पविराम के रूप में अल्पविराम के रूप में करते हैं। अब तक मुझे यह पता नहीं लगाया जा सकता है कि इन फ़ाइलों को प्रो आयात का उपयोग करके एसएएस में कैसे आयात किया जाए - या किसी अन्य स्वचालित फैशन में मैन्युअल रूप से परिवर्तनीय नामों के साथ गड़बड़ करने की आवश्यकता के बिना।सीएसवी फ़ाइल को डिलीमीटर के साथ ";" के रूप में कैसे आयात करें और एसएएस में दशमलव विभाजक "," के रूप में?
नमूना डेटा बनाएं:
%let filename = %sysfunc(pathname(work))\sap.csv;
data _null_;
file "&filename";
put 'a;b';
put '12345,11;67890,66';
run;
आयात कोड:
proc import out = sap01
datafile= "&filename"
dbms = dlm;
delimiter = ";";
GETNAMES = YES;
run;
आयात जैसे 350,58 चर "राशि" के लिए एक मूल्य (जिसमें 350.58 से मेल खाती है के बाद यूएस प्रारूप) एसएएस में 35,058 (जिसका अर्थ है थर्डफिथसैंड ...) जैसा दिखता है (और जर्मन एक्सेल में पुनः निर्यात के बाद यह 35.058,00 जैसा दिखता है)।
data sap02; set sap01;
AMOUNT = AMOUNT/100;
format AMOUNT best15.2;
run;
मुझे आश्चर्य है कि सीवीएस-आयात के लिए दशमलव विभाजक (सीमांकक के विनिर्देश के समान) को परिभाषित करने का आसान तरीका है तो: एक सरल लेकिन गंदा वैकल्पिक हल निम्नलिखित होगा। .. या मेरे कामकाज की तुलना में कोई अन्य "क्लीनर" समाधान। अग्रिम में बहुत धन्यवाद!
35.358,00, यह एक स्ट्रिंग चर की तरह लग रहा
substitute_commasep.perl पर्ल कार्यक्रम
पर्ल कोड का नाम है। क्या यह 35,058,00 है? –
धन्यवाद, मैंने अपनी पोस्ट संपादित की है! – Joz