You'll see that x1 x2 and x3 are input, beginning with the fourth column, then skipping 4 columns before reading x2, and another 4 columns before reading x3. All are read with the $1. informat.
Conversely, y1 to y3 take the values from columns 1 thru 3.
As for your second question, concentrate1 and concentrate are both reading the same values.
I'm not sure what you're asking in your third question. If you assign a library name to some directory, and define it as the library where the file resulting from the input should go (e.g.,
libname mylib "c:\";
input etc etc.
I am confused by this statement:
"When I output this to a permanent dataset using PUT statement, how should I handle these?"
You would output observations to a permanent SAS dataset in 1 of 2 ways (since you did not show your whole program, there's no way to know which way you are using):
1) implicit output (where there is an implied OUTPUT for every iteration of the DATA step program)
2) explicit output with an OUTPUT statement
If you are using an OUTPUT statement (either implicit or explicit), then you would be creating a permanent SAS dataset.
If, on the other hand, you have a FILENAME statement and PUT statements, you would not be creating an permanent SAS dataset -- you would be creating a permanent file (usually sequential or ASCII text file), as defined with a DD statement or a filename statement. The INPUT statement generally reads data from a 'flat" or sequential file. The PUT statement generally writes data to a "flat" or sequential file. This "flat" file from a PUT statement would not be a permanent SAS dataset -- you would point to it with a FILENAME statement, not with a LIBNAME statement.
(And let's not forget that the rest of your program might use the PUT function to convert numeric variables to character variables.)
I also notice that your program has a single trailing @ character at the end of the INPUT statement. Generally this means that you are holding the INPUT line for another execution of the INPUT statement. Seeing more of your program, including other INPUT, PUT and OUTPUT statements might be useful.