BookmarkSubscribeRSS Feed
KarimaTouati
Obsidian | Level 7

Hello all,

I have a csv file that I am trying to import into SAS EG 8.3 using the import data icone.

My problem is with the numeric variables.

This is an example of my data in the csv file : 

iiii.PNG

 

You can see that I have a periode as a decimal separator ( the yellow column as an example).

My problem comes when I import the data with SAS EG 8.3. Here is how it looks like : 

 

uuu.PNG

 It doesn't recognize the periode as a decimal separator.

I have tried to format the varible type with 

format MNT_VOL commax10.5;

or with

Mnt_VOL=translate(Mnt_VOL,'.',',');

but I have always a problem to fix it.

 

Any help will be appreciated. Thank you in advance.

 

 

9 REPLIES 9
JosvanderVelden
SAS Super FREQ

Can you send us the code generated when you use the import data icon?

Can you use the import data icon with the attached csv file (first line is header)?

 

Best regards, Jos

KarimaTouati
Obsidian | Level 7

This is the code genarated when importing your data sample with the import data icon  : 

DATA WORK.sample;
26             LENGTH
27                 Year               8
28                 Make             $ 5
29                 Model            $ 38
30                 Description      $ 33
31                 Price              8 ;
32             FORMAT
33                 Year             BEST4.
34                 Make             $CHAR5.
35                 Model            $CHAR38.
36                 Description      $CHAR33.
37                 Price            BEST7. ;
38             INFORMAT
39                 Year             BEST4.
40                 Make             $CHAR5.
41                 Model            $CHAR38.
42                 Description      $CHAR33.
43                 Price            BEST7. ;
44             INFILE '/saswork/SAS_work4E9600003067_SRV-SAS/#LN00010'
45                 LRECL=66
46                 ENCODING="LATIN9"
47                 TERMSTR=CRLF
48                 DLM='7F'x
49                 MISSOVER
50                 DSD ;
51             INPUT
52                 Year             : ?? BEST4.
53                 Make             : $CHAR5.
54                 Model            : $CHAR38.
55                 Description      : $CHAR33.
56                 Price            : ?? COMMA7. ;
57         RUN;
PaigeMiller
Diamond | Level 26

This is not the code you used. All the variable names are different. We need working SAS data step code for your data and your variables. See: https://communities.sas.com/t5/SAS-Communities-Library/How-to-create-a-data-step-version-of-your-dat...

--
Paige Miller
KarimaTouati
Obsidian | Level 7

I know how to use a proc import.

I can not use it in my case since I am working on a server and there is some admin restrictions to acess the data file location.

My recent code was in response to @JosvanderVelden.

PaigeMiller
Diamond | Level 26

@KarimaTouati wrote:

 

I can not use it in my case since I am working on a server and there is some admin restrictions to acess the data file location.

My recent code was in response to @JosvanderVelden.


And so the code you showed us is absolutely useless.


We need your data provided as WORKING data step code, even if you have to type it in yourself. The data can be fake, as long as the variable names and formats and such are correct. And if you help us, then we can provide better help to you. But you have to do the work to help us.

--
Paige Miller
KarimaTouati
Obsidian | Level 7

This is the code used for my data as well the origiinal data file :

DATA WORK.TAB2_2022;
23             LENGTH
24                 NUM_POLICE       $ 15
25                 DC_TIERCE        $ 6
26                 TYPE_SINISTRE    $ 3
27                 DATE_OUVERTURE     8
28                 DATE_MISSION_EXPERT   8
29                 TYPE_DOSSIER_AFIN $ 15
30                 IDCDL_AFIN       $ 25
31                 STATUT_AFIN        8
32                 RESERVE_AFIN       8
33                 MNT_CAS            8
34                 MNT_TIERCE         8
35                 MNT_VOL            8
36                 MNT_INC            8
37                 ALL_NBR_CREE       8
38                 ALL_MNT_CREE       8
39                 DD_QUIT_CREE     $ 1
40                 MNT_ENCAISSE       8
41                 DD_QUIT_ENCAISSE   8
42                 MNT_ARRIERE        8
43                 DD_QUIT_ARRIERE    8
44                 MNT_ANNULLEE_PF    8
45                 DD_QUIT_ANNULLEE_PF   8
46                 HONORAIRE_EXPERTS   8
47                 HONORAIRE_EXPERTS_AR   8
48                 HONORAIRE_EXPERTS_EC   8
49                 HONORAIRE_EXPERTS_SR   8
50                 DERNIERMVT       $ 23
51                 MONTANT_RESERVE_AUXILIARE   8
52                 MONTANT_RESERVE_RAJ   8
53                 STATUT_POLICE    $ 7
54                 MNT_RES_VOL        8
55                 RESERVE_AFIN_COMPTA   8 ;
56             FORMAT
57                 NUM_POLICE       $CHAR15.
58                 DC_TIERCE        $CHAR6.
2                                                          Le Système SAS                             13:50 Friday, January 13, 2023

59                 TYPE_SINISTRE    $CHAR3.
60                 DATE_OUVERTURE   DDMMYY10.
61                 DATE_MISSION_EXPERT YYMMDD10.
62                 TYPE_DOSSIER_AFIN $CHAR15.
63                 IDCDL_AFIN       $CHAR25.
64                 STATUT_AFIN      BEST1.
65                 RESERVE_AFIN     BEST5.
66                 MNT_CAS          BEST1.
67                 MNT_TIERCE       BEST1.
68                 MNT_VOL          BEST9.
69                 MNT_INC          BEST1.
70                 ALL_NBR_CREE     BEST1.
71                 ALL_MNT_CREE     BEST9.
72                 DD_QUIT_CREE     $CHAR1.
73                 MNT_ENCAISSE     BEST9.
74                 DD_QUIT_ENCAISSE DDMMYY10.
75                 MNT_ARRIERE      BEST4.
76                 DD_QUIT_ARRIERE  DDMMYY10.
77                 MNT_ANNULLEE_PF  BEST4.
78                 DD_QUIT_ANNULLEE_PF DDMMYY10.
79                 HONORAIRE_EXPERTS BEST7.
80                 HONORAIRE_EXPERTS_AR BEST6.
81                 HONORAIRE_EXPERTS_EC BEST7.
82                 HONORAIRE_EXPERTS_SR BEST7.
83                 DERNIERMVT       $CHAR23.
84                 MONTANT_RESERVE_AUXILIARE BEST7.
85                 MONTANT_RESERVE_RAJ BEST7.
86                 STATUT_POLICE    $CHAR7.
87                 MNT_RES_VOL      BEST5.
88                 RESERVE_AFIN_COMPTA BEST8. ;
89             INFORMAT
90                 NUM_POLICE       $CHAR15.
91                 DC_TIERCE        $CHAR6.
92                 TYPE_SINISTRE    $CHAR3.
93                 DATE_OUVERTURE   DDMMYY10.
94                 DATE_MISSION_EXPERT YYMMDD10.
95                 TYPE_DOSSIER_AFIN $CHAR15.
96                 IDCDL_AFIN       $CHAR25.
97                 STATUT_AFIN      BEST1.
98                 RESERVE_AFIN     BEST5.
99                 MNT_CAS          BEST1.
100                MNT_TIERCE       BEST1.
101                MNT_VOL          BEST9.
102                MNT_INC          BEST1.
103                ALL_NBR_CREE     BEST1.
104                ALL_MNT_CREE     BEST9.
105                DD_QUIT_CREE     $CHAR1.
106                MNT_ENCAISSE     BEST9.
107                DD_QUIT_ENCAISSE DDMMYY10.
108                MNT_ARRIERE      BEST4.
109                DD_QUIT_ARRIERE  DDMMYY10.
110                MNT_ANNULLEE_PF  BEST4.
111                DD_QUIT_ANNULLEE_PF DDMMYY10.
112                HONORAIRE_EXPERTS BEST7.
113                HONORAIRE_EXPERTS_AR BEST6.
114                HONORAIRE_EXPERTS_EC BEST7.
115                HONORAIRE_EXPERTS_SR BEST7.
116                DERNIERMVT       $CHAR23.
3                                                          Le Système SAS                             13:50 Friday, January 13, 2023

117                MONTANT_RESERVE_AUXILIARE BEST7.
118                MONTANT_RESERVE_RAJ BEST7.
119                STATUT_POLICE    $CHAR7.
120                MNT_RES_VOL      BEST5.
121                RESERVE_AFIN_COMPTA BEST8. ;
122            INFILE '/saswork/SAS_workDD09000073E7_SRV-SAS/#LN00010'
123                LRECL=227
124                ENCODING="LATIN9"
125                TERMSTR=CRLF
126                DLM='7F'x
127                MISSOVER
128                DSD ;
129            INPUT
130                NUM_POLICE       : $CHAR15.
131                DC_TIERCE        : $CHAR6.
132                TYPE_SINISTRE    : $CHAR3.
133                DATE_OUVERTURE   : ?? DDMMYY10.
134                DATE_MISSION_EXPERT : ?? YYMMDD8.
135                TYPE_DOSSIER_AFIN : $CHAR15.
136                IDCDL_AFIN       : $CHAR25.
137                STATUT_AFIN      : ?? BEST1.
138                RESERVE_AFIN     : ?? COMMAX5.
139                MNT_CAS          : ?? BEST1.
140                MNT_TIERCE       : ?? BEST1.
141                MNT_VOL          : ?? COMMAX9.
142                MNT_INC          : ?? BEST1.
143                ALL_NBR_CREE     : ?? BEST1.
144                ALL_MNT_CREE     : ?? COMMAX9.
145                DD_QUIT_CREE     : $CHAR1.
146                MNT_ENCAISSE     : ?? COMMAX9.
147                DD_QUIT_ENCAISSE : ?? DDMMYY10.
148                MNT_ARRIERE      : ?? BEST4.
149                DD_QUIT_ARRIERE  : ?? DDMMYY10.
150                MNT_ANNULLEE_PF  : ?? BEST4.
151                DD_QUIT_ANNULLEE_PF : ?? DDMMYY10.
152                HONORAIRE_EXPERTS : ?? COMMA7.
153                HONORAIRE_EXPERTS_AR : ?? COMMAX6.
154                HONORAIRE_EXPERTS_EC : ?? COMMA7.
155                HONORAIRE_EXPERTS_SR : ?? COMMA7.
156                DERNIERMVT       : $CHAR23.
157                MONTANT_RESERVE_AUXILIARE : ?? COMMAX7.
158                MONTANT_RESERVE_RAJ : ?? COMMAX7.
159                STATUT_POLICE    : $CHAR7.
160                MNT_RES_VOL      : ?? COMMAX5.
161                RESERVE_AFIN_COMPTA : ?? COMMAX8. ;
162        RUN;

 

PaigeMiller
Diamond | Level 26

I never download attachments. 

 

So your post needs to contain DATA, the actual numbers and character strings in your data (or even fake numbers and fake character strings, which would be fine), as working SAS data step code. I have provided a link to instructions. Please follow those instructions.

--
Paige Miller
AMSAS
SAS Super FREQ

@KarimaTouati 
We are really going to see your data and code, a lot of people (including me) will not download attachments for obvious reasons.

 

One thing I do not understand is how your raw data is CSV format. If it is then how would you know if the following is 3 values (123, 12 and example, ie 2 numbers and a text string) or just 2 (123.12 and example ie 1 number and a text string)?

123,12,example

Even if you have column headers (see below) you would still have issues

Var1, Var2
123,45,67

Would this be 123 and 45.67, or 123.45 and 67

It would be helpful if you could create some SAS code that replicates your raw data file e.g.

data _null_ ;
	file "myTemp.csv" ;
	do i=1 to 10 ;
		x=ranuni(1)*10 ;
		y=ranuni(2)*10 ;
		put x commax5.2 "," y commax5.2 ;
	end ;
run ;
		




Tom
Super User Tom
Super User

I would recommend that you not IMPORT the file.  Instead just READ the file.  That is write your own data step to read the file. Then you have complete control over the names of the variables and the INFORMAT that is used to read each variable.

 

If the file is only available on the PC that is running Enterprise Guide then use the File Upload task to copy the CSV file up to the SAS server.

 

If you really have no idea what is in the file then you could see if PROC IMPORT changes how it decides to read strings like that if you change the LOCALE setting to a location where the default is to use comma for decimal points.

 

Or use some other tool to GUESS how to read the file.  Such as this macro: https://github.com/sasutils/macros/blob/master/csv2ds.sas

that has a method for you to override the informat used for a variable.

 

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 9 replies
  • 2176 views
  • 1 like
  • 5 in conversation