Red de conocimiento informático - Material del sitio web - Cómo utilizar el pequeño libro de sas para aprender sas

Cómo utilizar el pequeño libro de sas para aprender sas

1) Hay dos formas de comentar, una es el signo * y el signo ; la otra está representada por /* */. Tenga en cuenta que el segundo método de comentario no se puede colocar en la primera columna. ) Error Los programas SAS generalmente marcan los errores de ejecución como letras rojas llamativas. Es posible que olvide un punto y coma, escriba mal una letra o presione el teclado incorrecto. Un pequeño error hará que todo el programa no pueda ejecutarse. No se desanime cuando vea más rojo que negro.

3) Los conjuntos de datos SAS también se denominan tablas, las observaciones también se denominan filas y las variables también se denominan columnas

4) Los valores faltantes de las variables de caracteres se representan mediante espacios. y los valores faltantes de las variables numéricas se representan mediante punto (.) significa

5) Siga las siguientes reglas al nombrar variables y conjuntos de datos:

La longitud del nombre debe. ser menor o igual a 32 bytes.

.Comience con una letra o guión bajo.

.Puede contener letras, números o guiones bajos, ¡pero no %$! *@.

.Pueden ser letras minúsculas o mayúsculas, no distingue entre mayúsculas y minúsculas.

6) Los programas SAS tienen dos módulos básicos: pasos de datos y pasos de proceso.

Un programa SAS típico comienza con un paso de datos que crea un conjunto de datos SAS y luego un paso de proceso que analiza los datos. A continuación se muestra un ejemplo: convertir metros a kilómetros en el paso de datos y generar el resultado en el paso del proceso

Paso DATOS

Distancia DATOS;

Millas = 26,22 ;

Kilómetros = 1,61*Millas;

Paso PROC

PROC PRINT DATA = distancia;

RUN;

Tanto los pasos de datos como los pasos del procedimiento almacenado se componen de declaraciones (sin sentido). Un procedimiento almacenado puede tener al menos una declaración o hasta cientos. Un error común que cometen los principiantes es confundir las dos declaraciones de procedimiento. Siempre que recuerde que el paso de datos es responsable de leer y modificar los datos, y el paso de procedimiento es responsable de analizar datos, generar informes y funciones prácticas, no lo hará. equivocarse.

El paso de datos comienza con la declaración DATOS: datos+nombre de datos. El paso de datos del ejemplo anterior procesa datos denominados distancia. Para leer datos externos no procesados, el paso de datos proporciona DO LOOPS, IF-THEN/ELSE y varias funciones numéricas y de caracteres. El paso Datos también puede combinar conjuntos de datos de la forma que desee, incluidas uniones y combinaciones de coincidencias.

El paso del procedimiento almacenado comienza con la declaración proc: proc+nombre del procedimiento almacenado (imprimir, ordenar, promediar...), los pasos del procedimiento almacenado SAS pueden manejar todo, desde el almacenamiento y la salida de datos hasta el análisis de varianza y tres -dimensional Todas las cuestiones de cartografía.

Un programa típico comienza con una declaración DATA, ingresa o modifica datos y luego pasa los datos a una declaración PROC. Pero en este modo, las declaraciones DATA y PROC no tienen que mezclarse; puede organizar DATA y PROC en cualquier orden, y el programa puede incluso tener solo declaraciones DATA o PROC.

Las siguientes son algunas diferencias básicas entre declaraciones de datos y proc:

Paso DATOS

Comenzar con la declaración DATOS

Leer y modificar datos

Crear un conjunto de datos SAS

Paso PROC

Comience con una declaración de DATOS. p>Paso PROC

Comenzar con una declaración PROC

Comenzar con un análisis o función específica

Generar resultados o informes

7) Paso de datos "Línea por línea", "una vez"

El paso de datos es "línea por línea". Esta oración es fácil de entender. Sin embargo, muchos principiantes todavía tienden a cometer errores aquí, como usar una variable sin crearla primero. Si la variable Z es una nueva variable compuesta por dos variables, X e Y, entonces debe asegurarse de que la declaración que crea la variable Z venga después de las declaraciones que crean las variables X e Y.

"Observar la ejecución paso a paso" no es fácil de entender.

Esto significa que SAS lee una observación, luego ejecuta todas las declaraciones del paso de datos en esa observación (fila por fila, por supuesto) y luego lee la segunda observación para su ejecución. Solo hay una observación cada vez que se ejecuta SAS.

8) Los principales métodos para leer datos en SAS son:

entrada directa

Crear conjuntos de datos SAS a partir de archivos de datos originales. >

.Convierta archivos de datos de otro software a conjuntos de datos SAS;

.Lea conjuntos de datos directamente desde otro software;

9) Datos internos sin procesar

Si los datos se ingresan directamente en el programa SAS, entonces los datos son internos de SAS. DATALINES es una indicación de SAS de que las siguientes filas de datos seguirán hasta el final del punto y coma, que puede estar en una línea separada o inmediatamente después de los datos

. 10) Datos sin procesar externos

Para datos fuera del programa SAS, use la declaración INFILE para indicarle a SAS el nombre del archivo y la ruta de almacenamiento de los datos externos. Está después de la declaración de datos INPUT y antes de la declaración INFILE. . El nombre del archivo y la ruta deben citarse después de INFILE. Varios sistemas se refieren a él de diferentes maneras:

Windows. INFILE 'C:\Mydir\President.dat';

UNIX: INFILE '/home/mydir/president.dat'

OpenVMS: INFILE '[nombre de usuario.mydir]presidente .dat';

OS/390 o z /OS INFILE 'MYID.PREDIDEN.DAT';

11) Registro SAS

Al leer datos externos, el registro SAS proporcionará información muy útil que se puede examinar para resolver el problema, como comparar la cantidad de registros leídos por la declaración INFILE con la cantidad de registros leídos en el conjunto de datos. Después de la observación real, puede juzgar si SAS ha leído los datos correctamente

12) El registro es demasiado largo

En algunos entornos operativos, SAS supone que la longitud del registro de los datos externos El archivo es 256 o menos (la longitud del registro se refiere al número de caracteres en una fila, incluidos los espacios. Si la longitud es demasiado larga, SAS no puede leerlo todo. En este momento, debe usar LRECL= en la declaración INFILE). especifique la longitud. Esta longitud debe ser la más larga de los datos. La longitud de las líneas largas, como:

INFILE'c:\MyRawData\President.dat'LRECL=2000;

<. p>Puede utilizar registros SAS para ver la longitud máxima de registro.

13) La declaración INPUT es parte del paso de datos y le dice a SAS cómo leer los datos sin procesar. Utilice el método de entrada de lista para escribir una declaración INPUT: enumere los nombres de las variables después de la palabra clave INPUT (en el orden en que aparecen las variables en el archivo). La longitud del nombre de la variable no debe exceder los 32 bytes y solo puede contener letras. guiones bajos y datos, y debe comenzar con letras o comenzar con un guión bajo. Si la variable es una cadena, debe ir seguida del símbolo "$", debe haber al menos un espacio entre los valores y se debe agregar un punto y coma al final de la declaración. Por ejemplo, INPUT Nombre $ Edad Altura

Esto significa ingresar tres variables, donde el nombre es una cadena, la edad y la altura son variables numéricas

14) La lectura de entrada de columnas se organiza en columnas fijas Datos sin procesar

La entrada de lista no funcionará cuando algunos datos sin procesar no tengan espacios que separen los valores o no utilicen puntos para reemplazar los valores faltantes.

Sin embargo, si el valor de cada variable aparece en la misma posición en la fila de datos y el valor de la variable es una cadena o un valor estandarizado (solo los datos, el punto decimal, el signo y la notación científica E coma y fecha no incluidas), puede utilizar el método de entrada de columna

El método de entrada de columna tiene las siguientes ventajas en comparación con el método de entrada de lista.

Ventajas:

. No se requieren espacios entre valores de variables;

. Los valores faltantes se pueden reemplazar directamente con espacios

.

.p>

Se pueden omitir variables innecesarias.

El formato de declaración de entrada para la entrada de columna es el siguiente: la palabra clave de entrada va seguida del nombre de la variable y luego la posición de la columna de la variable (la posición de la columna es la posición del carácter o valor en un fila). Aún se debe agregar "Espacio + $" después del nombre de la variable de cadena, y los nombres de las variables aún deben estar separados por espacios. Un ejemplo es el siguiente:

ENTRADA Nombre $ 1-10 Edad 11-13 Altura 14-18;

Esta declaración significa que la variable Nombre (que ocupa las primeras diez columnas de un fila) es una variable de cadena. La edad ocupa las columnas 11-13 y es una variable numérica. La altura ocupa las columnas 14-18 y es una variable numérica.

15) Los informats pueden leer datos sin procesar en formatos no estándar

A veces, los datos sin procesar no son solo cadenas o valores numéricos, como cadenas que contienen comas como 1,00,001 valores ​​no pueden ser leídos por computadoras, y otros datos, como los datos que contienen signos de dólar, hexadecimales y decimales empaquetados, no son datos estándar en SAS.

Se pueden utilizar formatos para indicarle al ordenador cómo leer estos valores.

La fecha es el tipo de datos no estándar más común. La información SAS convertirá datos como 31-10-2003 o 31OCT03 en números. La fecha comienza a partir del 1 de enero de 1960, lo que significa que el número es 0 día. .

Tres formatos comunes de información son: cadena, numérico y fecha. Las formas de estos tres formatos son las siguientes:

Carácter$informatw.

Valor informatw.d

Fecha informatw.

$ es una cadena de caracteres, informats representa la forma (por ejemplo, MMDDAA representa la fecha), w es el ancho, d es el número de decimales y el último es un punto "." Cuando falta el punto, SAS lo tratará. el formulario (por ejemplo, MMDDAA) como nombre de variable. Una declaración INPUT de entrada formateada simple es la siguiente:

Nombre INPUT $10.Edad 3.Altura 5.1 Fecha de nacimiento MMDDAA10.;

Nombre es una variable de cadena que ocupa 10 anchos, es decir, Columnas 1 -10;

la edad es una variable numérica, ocupa 3 anchos y la posición de la columna es 11-13;

la altura es una variable numérica, ocupa 5 anchos, se usa 1 ancho; para el punto decimal y el punto decimal en sí, con las posiciones de columna 14-18 (por ejemplo:, 150.3)

La última es la variable de fecha, comenzando desde la columna 19, en el formato MMDDYYY

16) Método de lectura híbrido

Cada método de lectura de datos tiene sus ventajas. Las listas son las más simples. Aunque las columnas y el formato son complejos, no requieren espacios entre las variables y los nombres de las variables se pueden incluir. Las variables y el formato pueden leer datos especiales como fechas. sas le brinda la flexibilidad de mezclar y combinar diferentes métodos de lectura para una máxima comodidad.

Existen muchas formas de leer datos, el siguiente programa es una de ellas:

DATA nation;

INFILE 'C:\MYrawdata\park.dat ';

INPUT Nombre del parque $ 1-22 ESTADO $ Año @40 acres.COMA9.;

PROC PRINT DATA = nación;

TITLE 'Selecciona parques nacionales ';

RUN;

Donde ParkName se lee en forma de columna, Estado y Año se leen en forma de lista y Superficie se lee en forma formateada.

A veces ocurren problemas con lecturas mixtas: en modo lista, SAS encuentra automáticamente un área sin espacio y comienza a leer; en modo columna, SAS lee la posición específica que usted especifica en formato de mensaje; ignora los criterios métricos y simplemente los lee secuencialmente. En este caso, debe utilizar el designador de columna @n para hacer que SAS artificialmente lea la columna directamente.

17) Leer datos sin procesar desordenados

Algunos datos son desordenados y varían en longitud. Este tipo de datos requiere nuevas herramientas para manejar: el indicador de columna @'char' y el modificador de dos puntos.

Indicador de columna @'Carácter' El indicador @column mencionado en 2.9 permite a SAS saltar directamente de una columna a otra. El indicador @column permite a SAS saltar directamente de una columna a otra. Pero a veces no sabes en qué columna comienzan los datos que deseas leer. En este caso, solo necesitas saber los caracteres o palabras delante de los datos que deseas leer. Por ejemplo, si tiene un archivo sin formato sobre perros y desea leer el número de raza del perro, pero el archivo está desordenado y solo sabe que el número de raza está después de la palabra raza, entonces puede leerlo de la siguiente manera: Entrada @ 'Breed: ' DogBreed $;

modificador de dos puntos Dado que la variable de cadena de lectura de entrada tiene por defecto 8 caracteres, en el ejemplo anterior, si el nombre de la raza del perro (dogbreed) tiene más de 8 caracteres, debe definir la longitud, definida como $longitud, se contarán los espacios. Si desea que SAS no continúe leyendo cuando encuentre un espacio durante la lectura, debe agregar dos puntos ":" delante de $ length. Por ejemplo, existe una línea en los datos originales:

El registro web de muestra es un buen ejemplo de datos desordenados. El siguiente es un registro web de un sitio web. la IP de acceso, seguida de la fecha de acceso, los nombres de los archivos de acceso y otra información

Ahora desea leer la fecha de acceso y el nombre del archivo de acceso, pero ocupan diferentes posiciones de columna en cada fila, y el archivo La longitud del nombre es diferente en cada fila.

DATOS weblogs:

INFILE 'c:\dogweblogs.txt';

INPUT @'[' Fecha de acceso DATE11.@'GET' Archivo:$20. ;

PROC PRINT DATA = weblogs;

TITLE 'Registros web de cuidado de perros';

EJECUTAR;

@'[' como Indicador de columna, le dice a SAS que lea el contenido después de [, @'GET' le dice a SAS que lea el contenido después de GET, porque el nombre del archivo se usa como una variable de cadena, que básicamente tiene más de 8 bytes, por lo que después de agregar: $20

18) Lectura de observaciones a través de líneas

Por lo general, una línea en el archivo original representa una observación y, a veces, hay una observación que abarca una línea. Dado que SAS pasa automáticamente a la siguiente línea de datos hasta que se hayan leído todas las variables para esa observación (indicadas en la declaración INPUT), debe indicarle a SAS cuándo no ajustar la línea para que SAS- no aparezca en el registro. -to-a-new-line pausa el comentario cuando agrega un indicador de línea a la declaración INPUT. ()

Indicador de fila, barra diagonal/: le dice a SAS que salte a la segunda fila de los datos originales; #n: salta a la enésima fila, n representa la fila del valor de observación específico en los datos originales. número (#2 le dice a SAS que salte a la segunda fila para una observación específica), #n no se puede usar para saltar hacia adelante y hacia atrás.

Ejemplo Hay un conjunto de datos sobre temperatura. La primera fila de Temperature.dat representa la ciudad y el estado, la segunda fila representa la temperatura más alta y más baja del día y la tercera fila representa la más alta. y la temperatura más baja de la historia.

NOME AK

55 44

88 29

Lee estos datos usando los siguientes grados:

DATOS highlow;

INFILE 'c:\myrawdata\temperature.dat';

ENTRADA CIUDAD $ ESTADO $

/ NormalAlto NormalBajo

#3 RecordHigh RecordLow;

PROC PRINT DATA = highlow;

TITLE 'Temperaturas máximas y mínimas de julio';

RUN;

Entrada le dice a SAS que lea las variables de ciudad y estado en la primera fila, y la barra / le dice a SAS que pase a la primera columna de la siguiente fila para leer normalhigh y normallow. #3 le dice a SAS que pase a la primera columna de la tercera fila y continúe leyendo las observaciones. Aquí / se puede reemplazar por el n.° 2, o / se puede reemplazar por el n.° 3.

19) Cuando hay varias observaciones seguidas, puede agregar un símbolo de parada @@@ al final de la declaración de entrada.

20) Lea algunas observaciones de los datos originales.

p>

: cuando SAS lee una fila de observaciones, primero lee suficientes variables para determinar si necesita retener las observaciones de la fila. Luego, el símbolo @ al final de la declaración de entrada se denomina final en, lo que le indica a SAS que se detenga (mantenga presionado) en esa línea y use una declaración IF para verificar si esa observación es necesaria y, de ser así, use otra declaración de entrada. para leer el actual Hay variables

@ vs @@ @ tiene una función similar a @@. Ambos son especificadores de retención de línea. La diferencia es la duración de la retención. @ permite que SAS la mantenga hasta el momento. siguiente declaración de entrada (no se necesitan saltos de línea), @@ la mantiene hasta el siguiente paso de datos

.