@mahfuz_pops wrote:
thanks a lot, but that is changing the variable names, but for my analysis, is it possible to keep the original variable name? would you pls tell me how to do that keeping the original variable name unchanged?
If by "original variable name" you mean the column headings in your CSV the answer is "maybe". If your column headings have spaces in them; characters other than letters, numbers or the _ character; start with a number; or are longer than 32 characters, then no. But you can associate a label with the variable that is longer and not quite a picky as to content to contain that information.
When you run Proc Import for a CSV file SAS actually creates data step code to read the file. If you are using Base SAS then the Log will have the code. You can copy that to the editor and modify it (save it!). Likely you will find an issue with an informat statement, such that your variable with 941 values being read as 9 was read with a Charcter informat of $1 or some such. Possibly because the first rows for that variable were blank. You may adjust the informat statements to match your expectations, change variable names and add label statements.
If you have a very large list of variables you can use Excel or similar to create the label syntax.
1) copy the SAS Input statement from the generated data step and paste into the first column of a spreadsheet, remove any $ that maybe there.
2) Open the CSV, or copy the variable row only into a separate CSV file and open in Excel.
3) Copy the cells with the variables
4) Paste transpose into the column next to column with the SAS input variables.
5) Create a formula in a separate column to place and = and quotes around the second column (Use double quotes in case any of your variable have a ' in them). The last column should look like MyVariable = "This is the label for my variable"
6) Add a Label statement to the generated data step:
Label
<paste the column from the spread sheet just created>
;
... View more