Entrar
¿Nuevo usuario? Inscribirme
UsuariosSPSS · Usuarios y Consultores de SPSS
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés hacer búsquedas de antiguos mensajes del grupo.

Mensajes

  Mensajes Ayuda
Avanzado
Consultas   Lista de mensajes  
Responder | Reenviar Mensaje #166 de 806 |
RE: [UsuariosSPSS] Consultas

Hola Pablo:

Te detallo mi propuesta para cada una de tus preguntas:

 

1) Primera pregunta: obtener los 4 últimos dígitos de una variable numérica.

Puede resolverse de un modo parecido al de los problemas planteados estos días:

 

FORMATS numero1 (F20).

COMPUTE numero2= NUMBER(SUBSTR(STRING(NUMERO1,F20),17),f20.0).

EXECUTE.

FORMATS numero2 (F4).

 

Con la instrucción formats la he introducido al principio para eliminar los decimales. En caso de que tuvieras que mantener un númerod e terminado de decimales tendría que ser distinta.

La instrucción STRING hace que podamos usar SUBSTR, y NUMBER pasa la variable a numérica. He supuesto que el úmero máximo de dígitos es igual o inferior a 20, de ahí lo de F20.

Finalmente FORMATS le quita los decimales. Funciona aunque el número tenga menos de 4 dígitos y aunque tenga decimales.

 

Un problema más difícil, según creo, sería cuando lo que queremos son los primeros dígitos de una variable numérica, pero se resuelve averiguando la longitud de la cadena con los espacios anteriores (con LENGTH) o sin ellos (con LENGTH(LTRIM)), información que se utiliza para indicarle dónde se debe contar en la instrucción SUBSTR:

 

 

COMPUTE numero3= NUMBER(SUBSTR(STRING(NUMERO1,F20),LENGTH(STRING(NUMERO1,F20))-LENGTH(LTRIM(STRING(NUMERO1,F20)," "))+1,4),f20.0).

EXECUTE.

FORMATS numero3 (F4).

 

Habría que hacer modificaciones si se trata de un número negativo, o si queremos que se mantengan los dígitos cuando el número tenga menos de 4 dígitos. Supongo que no debe ser difícil utilizando uno o varios IF.

 

2) Segunda pregunta: Salvo que lo haya entendido mal se trata de sumar el número de variables con valor positivo de una serie de variables.

Una posible solución sería, sin modificar las variables existentes ni generar otras nuevas, excepto la variable resultado llamada “contar”:

 

COMPUTE contar =(a1>0) + (a2>0) + (a3>0).

EXECUTE.

FORMATS contar (F8).

 

La expresión (a1>0) y el resto de expresiones entre paréntesis son expresiones lógicas, que toman el valor 1 cuando son ciertas y 0 cuando son falsas. Quedan missing cuando no se pueden definir. Cuando se realiza la suma, si alguno de los valores (es decir, a1, a2 o a3 es missing, no se realiza la suma, y el resultado de la variable contar será missing. Si no quieres que eso ocurra se puede hacer con la siguiente sintaxis:

 

COMPUTE contar =SUM.1((a1>0) , (a2>0) , (a3>0)).

EXECUTE.

FORMATS contar (F8).

 

En la sintaxis anterior a la instrucción SUM se le añade .1 para indicarle que realice la suma con al menos un argumento, en lugar de los 2 que se requieren como mínimo si se usa como SUM().

 

Ya me contaréis si os funciona, o puede que tengáis soluciones más simples.

 

Un saludo

 

Juan Girbés

 

 

-----Mensaje original-----
De: Pablo Gabriel Malatino [mailto:pablomalatino@...]
Enviado el: viernes, 07 de noviembre de 2003 2:39
Para: Usuarios SPSS
Asunto: [UsuariosSPSS] Consultas

 

Hola a todos!  les quiero hacer unas consultas, por si alguien sabe, ya que antes me ayudaron mucho. Aquí van las consultas:

 

1) como hago para obtener los 4 últimos dígitos de una variable numérica:

por ejemplo  pasar de 745869304854 a 4854

 

2) Lo que quiero es para cada variable, saber si es positiva o negativa, en caso de ser positiva que le asigne el número 1, si es negativa que le asigne el número cero y que sume las variables a1, a2 y a3 (o sea sume los ceros y unos en otra variable). ¿Es posible hacerlo en una sintaxis sin crear otras variables adicionales?

 

a1      a2       a3        contar

4        -5         2            2

7        -9         -1           1

8         6          3           3

 

Saludos a todos, Pablo G. Malatino

 

 

 


------------------------------
UsuariosSPSS:
Usuarios de SPSS de habla castellana
------------------------------
Direcciones de la lista:
Publicar un mensaje: UsuariosSPSS@...
Suscribirse........: UsuariosSPSS-Subscribe@...
Desuscribirse......: UsuariosSPSS-Unsubscribe@...
Administrador......: UsuariosSPSS-Owner@...
Página de la lista.: http://www.gruposyahoo.com.ar/group/UsuariosSPSS
------------------------------
http://www.navegana.com/dinero/chanzes.html


Tu uso de Yahoo! Grupos está sujeto a las Condiciones del servicio de Yahoo!.




Vie, 7 de Nov, 2003 6:54 pm

jgirbesb2002
Sin conexión Sin conexión
Enviar correo Enviar correo

Reenviar Mensaje #166 de 806 |
Desplegar mensajes Autor Ordenar por fecha

Hola a todos! les quiero hacer unas consultas, por si alguien sabe, ya que antes me ayudaron mucho. Aquí van las consultas: 1) como hago para obtener los 4...
Pablo Gabriel Malatino
pablomalatino@...
Enviar correo
7 de Nov, 2003
1:45 am

Hola Pablo: Te detallo mi propuesta para cada una de tus preguntas: 1) Primera pregunta: obtener los 4 últimos dígitos de una variable numérica. Puede...
Juan Girbés
jgirbesb2002
Sin conexión Enviar correo
7 de Nov, 2003
6:54 pm
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda