El programa lee los datos del conjunto de datos SASHELP.QUAKES, que contiene información sobre terremotos. Realiza varias transformaciones en los datos: inicializa una nueva variable textual 'Depth_Cat' para almacenar categorías de profundidad, redondea la variable 'Magnitude' a un decimal e intenta categorizar 'Depth' en 'Shallow', 'Intermediate' o 'Deep'. Sin embargo, debido a la implementación secuencial de las instrucciones 'IF' sin cláusulas 'ELSE IF', la variable 'Depth_Cat' finalmente se establecerá en 'Deep' para cualquier observación donde la profundidad sea menor o igual a 700, sobrescribiendo las asignaciones anteriores. La tabla resultante 'work.earthquakes' contiene todas las variables originales más las nuevas variables 'Depth_Cat' y 'Magnitude' modificada.
Análisis de datos
Type : SASHELP
Los datos se leen del conjunto de datos 'quakes' que forma parte de la biblioteca estándar 'SASHELP' proporcionada con SAS. No es una fuente de datos externa en el sentido de que deba ser gestionada o cargada manualmente por el script.
1 Bloque de código
DATA STEP Data
Explicación : Este bloque de código es un DATA STEP que crea un nuevo conjunto de datos llamado 'work.earthquakes'. Lee todas las observaciones del conjunto de datos fuente 'sashelp.quakes'.
1. `length Depth_Cat $ 12;`: Define la longitud de la nueva variable de caracteres 'Depth_Cat' a 12 caracteres.
2. `Magnitude=round(Magnitude, .1);`: Redondea la variable numérica 'Magnitude' al primer decimal.
3. `if Depth<70 then Depth_Cat="Shallow";`: Intenta categorizar la profundidad. Si 'Depth' es menor que 70, 'Depth_Cat' se establece en 'Shallow'.
4. `if Depth<300 then Depth_Cat="Intermediate";`: Si 'Depth' es menor que 300, 'Depth_Cat' se establece en 'Intermediate'.
5. `if Depth<=700 then Depth_Cat="Deep";`: Si 'Depth' es menor o igual a 700, 'Depth_Cat' se establece en 'Deep'.
**Nota importante sobre la lógica de categorización:** Debido al uso de instrucciones `IF` secuenciales sin cláusulas `ELSE IF`, las condiciones se evalúan de forma independiente. Esto significa que si una profundidad es, por ejemplo, de 50 (es decir, < 70, < 300 y <= 700), 'Depth_Cat' será primero 'Shallow', luego sobrescrita por 'Intermediate', y luego sobrescrita nuevamente por 'Deep'. Por lo tanto, para todas las profundidades <= 700, 'Depth_Cat' finalmente tendrá el valor 'Deep'. Para una categorización mutuamente excluyente, sería necesario el uso de `IF...THEN ELSE IF...`.
¡Copiado!
data work.earthquakes;
set sashelp.quakes;
length Depth_Cat $ 12;
Magnitude=round(Magnitude, .1);
if Depth<70 then Depth_Cat="Shallow";
if Depth<300 then Depth_Cat="Intermediate";
if Depth<=700 then Depth_Cat="Deep";
run;
1
DATA work.earthquakes;
2
SET sashelp.quakes;
3
LENGTH Depth_Cat $ 12;
4
Magnitude=round(Magnitude, .1);
5
IF Depth<70THEN Depth_Cat="Shallow";
6
IF Depth<300THEN Depth_Cat="Intermediate";
7
IF Depth<=700THEN Depth_Cat="Deep";
8
RUN;
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.