es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Crear nueva variable y luego filtrar según la nueva variable.

Recientemente comencé a usar SAS. Estoy intentando crear una nueva tabla newtable basada en otra tabla oldtable. Supongamos que la oldtable contiene la variable OldPrice. Quiero crear newtable con una nueva variable NewPrice calculada basada en OldPrice. Luego, filtrar la newtable para mostrar solo NewPrice que sea mayor que 10.

A continuación se muestra el código de muestra que tengo.

data newtable;
set oldtable;
NewPrice = OldPrice * 2
where NewPrice > 10;
run;

Sin embargo, recibo un mensaje de error que dice que NewPrice no es una variable de oldtable.

Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error es correcto. NewPrice es una variable que estás creando en newtable, no en oldtable. Para crear newtable con la nueva variable NewPrice calculada en base a OldPrice y filtrar la tabla para mostrar solo NewPrice que sea mayor a 10, puedes modificar el código de la siguiente manera:

    data newtable;
    set oldtable;
    NewPrice = OldPrice * 2;
    if NewPrice > 10;
    run;
    

    En este código modificado, primero creamos una nueva tabla llamada newtable usando la declaración data. Luego utilizamos la declaración set para indicarle a SAS qué conjunto de datos queremos usar como fuente para newtable, que en este caso es oldtable.

    A continuación, creamos una nueva variable llamada NewPrice en newtable y calculamos su valor basado en el valor de OldPrice. Utilizamos el operador de multiplicación * para duplicar el valor de OldPrice y asignamos el resultado a NewPrice. Ten en cuenta que terminamos esta declaración con un punto y coma ;.

    Finalmente, utilizamos una declaración if para filtrar newtable y mantener solamente las observaciones donde NewPrice sea mayor a 10. Aquí, no incluimos ninguna otra declaración después de la declaración if. Esto se debe a que no necesitamos modificar NewPrice aún más, solo queremos mantener las observaciones que cumplen con esta condición.

    Después de escribir este código, puedes ejecutarlo y SAS automáticamente creará newtable con la nueva variable NewPrice calculada en base a OldPrice y filtrará la tabla para mostrar solo las observaciones relevantes.

Comments are closed.