Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

5 votos

Cómo buscar las filas que cumplen con determinadas condiciones con una secuencia de conjunto de datos

Aquí está el resumen de mi secuencia de los datos generados en el HECHIZO de formato. Todas las secuencias se supone que tienen la misma longitud de 1440, pero el resumen me dice que ellos no son el mismo (ver "min/max de la longitud de la secuencia:91/1440").

Quiero encontrar a las filas:

  1. que no tienen el 1440 longitud de la secuencia
  2. que falta alguno de los estados (*)
  3. que vacío elementos (%)

¿Tiene alguna sugerencia?

> summary(diary.seq)  
 [>] sequence object created with TraMineR version 1.8-3  
 [>] 4971 sequences in the data set, 4160 unique  
 [>] min/max sequence length: 91/1440  
 [>] alphabet (state labels):  
     1=Cr (Cr)  
     2=Ec (Ec)  
     3=Eo (Eo)  
     4=Hb (Hb)  
     5=Hc (Hc)  
     6=He (He)  
     7=Hr (Hr)  
     8=Hs (Hs)  
     9=Ir (Ir)  
     10=Lt (Lt)  
     11=Or (Or)  
     12=Pb (Pb)  
      ...  
 [>] dimensionality of the sequence space: 27360  
 [>] colors: 1= 2= 3= 4= 5= 6= 7= 8= 9= 10= 11= 12= 13= 14= 15= 16= 17= 18= 19= 20=  
 [>] symbol for missing state: *  
 [>] symbol for void element: %  

6voto

serhio Puntos 101

Para seleccionar algunas secuencias, usted necesita para crear una condición de vectores. Por ejemplo, usted puede seleccionar las secuencias con una longitud inferior a 1440 utilizando el seqlength función. Aquí está un ejemplo con el "mvad" conjunto de datos.

## Loading the library
library(TraMineR)
data(mvad)
## Defining sequence properties
mvad.alphabet <- c("employment", "FE", "HE", "joblessness", "school", "training")
mvad.lab <- c("employment", "further education", "higher education", "joblessness", "school", "training")
mvad.shortlab <- c("EM", "FE", "HE", "JL", "SC", "TR")
## The state sequence object.
mvad.seq <- seqdef(mvad, 17:86, alphabet = mvad.alphabet, states = mvad.shortlab, labels = mvad.lab, xtstep = 6)

Ahora podemos calcular la longitud de la secuencia y construir el vector (aquí todas las secuencias tienen la misma longitud de 70, por lo que no tiene mucho sentido...). Hemos utilizado "<=" de lo contrario, no son las secuencias seleccionadas, pero en tu caso, deberías usar "<".

condition <- seqlength(mvad.seq) <= 70
seqdplot(mvad.seq[condition, ])

Para contar el número de tiempo de un estado que aparece en cada secuencia se puede utilizar el "seqistatd" de la función. Por ejemplo, si queremos seleccionar todas las secuencias con el de "JL" (desempleo) del estado, podemos usar:

state.count <- seqistatd(mvad.seq)
condition <- state.count[, "JL"] > 0
seqdplot(mvad.seq[condition, ])

Usted puede utilizar la misma estrategia para el "*" falta de estado. No hay necesidad de contar con un "%" (vacío), ya que esto llevará exactamente por el mismo resultado como el uso de "seqlength".

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X