Los ejemplos utilizan datos generados (datalines) para las demostraciones CAS, pero otros ejemplos dependen de archivos externos no creados en el código (marcados external_data_not_found: 1).
1 Bloque de código
DATA STEP
Explicación : Este ejemplo muestra cómo leer datos brutos de un archivo externo usando las instrucciones INFILE e INPUT. INFILE es requerida porque los datos fuente provienen de un archivo de texto externo.
¡Copiado!
data weight;
infile <fileref> or <path-to-file;
input PatientID $ Week1 Week8 Week16;
loss=Week1-Week16;
run;
1
DATA weight;
2
INFILE or
3
INPUT PatientID $ Week1 Week8 Week16;
4
loss=Week1-Week16;
5
RUN;
2 Bloque de código
DATA STEP
Explicación : Especifica el archivo que contiene los datos de entrada directamente usando su nombre físico entre comillas.
Explicación : Identifica el archivo al que la instrucción PUT escribe los datos. Este ejemplo muestra la escritura de condiciones basadas en una variable 'loss'.
¡Copiado!
file 'output-file';
data status;
if loss ge 5 and loss le 9 then
put idno loss 'AWARD STATUS=3';
else if loss ge 10 and loss le 14 then
put idno loss 'AWARD STATUS=2';
else if loss ge 15 then
put idno loss 'AWARD STATUS=1';
run;
1
file 'output-file';
2
DATASTATUS;
3
IF loss ge 5 and loss le 9THEN
4
put idno loss 'AWARD STATUS=3';
5
ELSEIF loss ge 10 and loss le 14THEN
6
put idno loss 'AWARD STATUS=2';
7
ELSEIF loss ge 15THEN
8
put idno loss 'AWARD STATUS=1';
9
RUN;
4 Bloque de código
%INCLUDE statement
Explicación : Permite incorporar instrucciones o datos brutos de otro archivo en su trabajo SAS y ejecutarlos.
¡Copiado!
%include 'source-file';
1
%include 'source-file';
5 Bloque de código
DATA STEP / FILENAME statement
Explicación : Asigna un fileref 'mydata' a un archivo de entrada, luego usa este fileref en la instrucción INFILE para leer los datos.
Explicación : Asigna un fileref 'myreport' a un archivo de salida y un fileref 'mydata' a un archivo de entrada, luego lee los datos para crear un nuevo conjunto de datos.
Explicación : Asigna un fileref 'mypgm' a un archivo que contiene instrucciones de programa.
¡Copiado!
filename mypgm 'source-file';
1
filename mypgm 'source-file';
10 Bloque de código
FILENAME statement
Explicación : Asigna un fileref 'myprinter' a un dispositivo de salida especificado por su tipo y las opciones de host.
¡Copiado!
filename myprinter <device-type>
<host-options>;
1
filename myprinter
2
;
3
11 Bloque de código
DATA STEP
Explicación : Utiliza el fileref 'mydata' (previamente asignado) en la instrucción INFILE para leer los datos.
¡Copiado!
data weight;
infile mydata;
input idno $ week1 week16;
loss=week1-week16;
1
DATA weight;
2
INFILE mydata;
3
INPUT idno $ week1 week16;
4
loss=week1-week16;
12 Bloque de código
DATA STEP
Explicación : Utiliza el fileref 'myreport' (previamente asignado) en la instrucción FILE para escribir datos condicionalmente.
¡Copiado!
file myreport;
if loss ge 5 and loss le 9 then
put idno loss 'AWARD STATUS=3';
else if loss ge 10 and loss le 14 then
put idno loss 'AWARD STATUS=2';
else if loss ge 15 then
put idno loss 'AWARD STATUS=1';
run;
1
file myreport;
2
IF loss ge 5 and loss le 9THEN
3
put idno loss 'AWARD STATUS=3';
4
ELSEIF loss ge 10 and loss le 14THEN
5
put idno loss 'AWARD STATUS=2';
6
ELSEIF loss ge 15THEN
7
put idno loss 'AWARD STATUS=1';
8
RUN;
13 Bloque de código
%INCLUDE statement
Explicación : Incluye el contenido del archivo referenciado por 'mypgm' en el trabajo SAS.
¡Copiado!
%include mypgm;
1
%include mypgm;
14 Bloque de código
FILENAME statement
Explicación : Asigna un fileref 'mydir' a un directorio o PDS (Partitioned Data Set), permitiendo acceder eficientemente a múltiples archivos.
file mydir(awards);
if loss ge 5 then put idno loss
'AWARD STATUS=3';
else if loss ge 10
then put idno loss 'AWARD STATUS=2';
else if loss ge 15
then put idno loss 'AWARD STATUS=1';
run;
1
file mydir(awards);
2
IF loss ge 5THEN put idno loss
3
'AWARD STATUS=3';
4
ELSEIF loss ge 10
5
THEN put idno loss 'AWARD STATUS=2';
6
ELSEIF loss ge 15
7
THEN put idno loss 'AWARD STATUS=1';
8
RUN;
17 Bloque de código
%INCLUDE statement
¡Copiado!
%include mydir(whole.program);
1
%include mydir(whole.program);
18 Bloque de código
DATA STEP
¡Copiado!
data out;
infile file-specification or path-to-file recfm=f lrecl=160;
input var1;
run;
1
DATA out;
2
INFILE file-specification or path-to-file recfm=f lrecl=160;
3
INPUT var1;
4
RUN;
19 Bloque de código
DATA STEP / PROC CASUTIL Data
¡Copiado!
/* Préparation des données dans WORK */
data maTableWork;
input PatientID $ Week1 Week8 Week16;
datalines;
P1 100 95 90
P2 80 78 75
P3 120 115 110
;
run;
/* Méthode standard - ne permet pas l'optimisation DVR directe */
proc casutil;
load data=maTableWork casout="maTableCAS";
quit;
1
/* Préparation des données dans WORK */
2
DATA maTableWork;
3
INPUT PatientID $ Week1 Week8 Week16;
4
DATALINES;
5
P1 1009590
6
P2 807875
7
P3 120115110
8
;
9
RUN;
10
11
/* Méthode standard - ne permet pas l'optimisation DVR directe */
12
PROC CASUTIL;
13
load DATA=maTableWork casout="maTableCAS";
14
QUIT;
20 Bloque de código
DATA STEP / PROC CAS Data
¡Copiado!
/* Création d'une table temporaire SAS pour l'exemple */
data somedata;
length id $8 name $20 value 8;
do id = 1 to 10;
name = cats('Item', id);
value = mod(id, 3) * 100;
output;
end;
/* Ajout de valeurs répétées pour montrer l'efficacité de DVR */
do id = 11 to 20;
name = 'Repeated';
value = 50;
output;
end;
run;
proc cas;
/* Nettoyage préalable si nécessaire */
action table.droptable / name="somedata" caslib="casuser" quiet=true;
/* Chargement optimisé */
upload /
/* Récupération dynamique du chemin physique de la table SAS */
path="%sysfunc(pathname(work))/somedata.sas7bdat"
/* Configuration de la table de sortie CAS */
casout={
caslib="casuser"
name="somedata"
promote=true, /* Rendre la table globale */
memoryformat="DVR", /* Activation de la compression DVR */
replication=0 /* Ajuster la réplication selon les besoins */
}
/* Options d'importation supplémentaires */
importoptions={
filetype="BASESAS",
varcharConversion=17 /* Convertit les CHAR > 16 octets en VARCHAR */
}
;
quit;
/* Vérification du format de la table en CAS (optionnel) */
proc casutil;
list tables caslib="casuser" level="memory";
quit;
1
/* Création d'une table temporaire SAS pour l'exemple */
2
DATA somedata;
3
LENGTH id $8 name $20 value 8;
4
DO id = 1 to 10;
5
name = cats('Item', id);
6
value = mod(id, 3) * 100;
7
OUTPUT;
8
END;
9
/* Ajout de valeurs répétées pour montrer l'efficacité de DVR */
/* Récupération dynamique du chemin physique de la table SAS */
24
path="%sysfunc(pathname(work))/somedata.sas7bdat"
25
26
/* Configuration de la table de sortie CAS */
27
casout={
28
caslib="casuser"
29
name="somedata"
30
promote=true, /* Rendre la table globale */
31
memoryformat="DVR", /* Activation de la compression DVR */
32
replication=0 /* Ajuster la réplication selon les besoins */
33
}
34
35
/* Options d'importation supplémentaires */
36
importoptions={
37
filetype="BASESAS",
38
varcharConversion=17/* Convertit les CHAR > 16 octets en VARCHAR */
39
}
40
;
41
QUIT;
42
43
/* Vérification du format de la table en CAS (optionnel) */
44
PROC CASUTIL;
45
list tables caslib="casuser" level="memory";
46
QUIT;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.
SAS y todos los demás nombres de productos o servicios de SAS Institute Inc. son marcas registradas o marcas comerciales de SAS Institute Inc. en los EE. UU. y otros países. ® indica registro en los EE. UU. WeAreCAS es un sitio comunitario independiente y no está afiliado a SAS Institute Inc.
Este sitio utiliza cookies técnicas y analíticas para mejorar su experiencia.
Saber más.