2017-07-07 4 views
1

J'ai vu cette erreur chaque fois que j'essaie d'exécuter seqdef sur mes données qui ont déjà été converties au format STS à l'aide de seqformat. Un échantillon de mon dataframe ressembleErreur dans les niveaux pour seqdef dans R

head(df.new, 10) 
    user_id orderdate   cart to 
1  8   1  produce 30 
2  8  31  produce 60 
3  8  61  produce 70 
4  8  71  produce 92 
5  10   1  produce 30 
6  10  31  produce 42 
7  10  43 meat seafood 56 
8  10  57   deli 77 
9  17   1 beverages 3 
10  17   4 beverages 8 

Il a un total de lignes de commandes 14000 et il y a des commandes qui se produisent le jour même pour chaque utilisateur (à savoir OrderDate == à). Voici les codes que j'ai utilisés pour créer mes données STS qui sont utilisées comme entrée dans seqdef.

df.form <- seqformat(df.new, id='user_id', begin='orderdate', end='to', status='cart', from='SPELL', to='STS', process=FALSE) 
df.seq <- seqdef(df.form, left='DEL', right = 'unknown', xtstep=10, void = 'unknown') 

Le message d'erreur que je reçois lors de l'exécution du seqdef est

[>] found missing values ('NA') in sequence data 
[>] preparing 35000 sequences 
[>] coding void elements with 'unknown' and missing values with '*' 
[>] 21 distinct states appear in the data: 
    1 = alcohol 
    2 = babies 
    3 = bakery 
    4 = beverages 
    5 = breakfast 
    6 = bulk 
    7 = canned goods 
    8 = dairy eggs 
    9 = deli 
    10 = dry goods pasta 
    11 = frozen 
    12 = household 
     ... 
[>] adding special state(s) to the alphabet: unknown 
Error in `levels<-`(`*tmp*`, value = if (nl == nL) as.character(labels) else paste0(labels, : 
    factor level [24] is duplicated 

J'ai essayé de supprimer les commandes dont OrderDate == pour et la même erreur se produit encore. J'apprécierais toute aide que je peux obtenir pour résoudre ce problème. Merci.

Répondre

0

L'erreur se produit parce que vous utilisez le même code ('inconnu') pour les erreurs et les vides.

Lorsque les séquences contiennent « Disparitions », ces Disparitions sera considéré comme un état séparé lorsque vous définissez with.missing = TRUE dans des fonctions telles que seqdist ou seqdplot, alors que les vides sont utilisés pour ajuster les longueurs de ligne et sont tout simplement ignorés lors du traçage des séquences (seqplot) ou des dissimilarités de calcul (seqdist).