<div>







<p class="p1">Thanks for your reply, Gilbert.</p>
<p class="p2">The data I have describes which webpage (i.e., StepNumber) in a sequence of webpages that a person visits. Although there's an intended sequence (1.1, 1.2, 1.3, etc.), the person can visit them in any order they wish. Ultimately, I'd like to relate the different ways people navigate this website to some outcome measure data I have elsewhere.</p>


<p class="p2">I converted my date/time variables into integers as you suggested. And following Nathan Green's experience (posted <a href="http://lists.r-forge.r-project.org/pipermail/traminer-users/2011-June/000073.html"><span class="s1">here</span></a>), I rounded the numbers so that this "11/28/2011 9:41:23 AM" eventually became this "35". I think this worked but I suspect it may be problematic later that a lot of finer grained timing information was lost by rounding the numbers. I just wanted to get something working for now, but I wonder if you have any suggestions on this.</p>


<p class="p2">I'm now encountering some errors and warning messages about missing values that I hope you can help me interpret.</p>
<p class="p2">Here's how my data now look:</p>
<p class="p2">> head(d[1:5,3:7])</p>
<p class="p1">WorkgroupID StartTime StopTime StepNumber                   StepTitle</p>
<p class="p1">1       45857        32       34        1.1     1.1 Meet the scientist!</p>
<p class="p1">2       45857        34       35        1.2 1.2 Your ideas about cancer</p>
<p class="p1">3       45857        35       35        1.1     1.1 Meet the scientist!</p>
<p class="p1">4       45857        35       35        1.2 1.2 Your ideas about cancer</p>
<p class="p1">5       45857        35       36        1.3        1.3 What is mitosis?</p>
<p class="p2"><br></p><p class="p2">And here are the various data types:</p>
<p class="p2">> str(d)</p>
<p class="p1">'data.frame':<span class="Apple-tab-span">        </span>11977 obs. of  30 variables:</p>
<p class="p1"> $ WorkgroupID             : int  45857 45857 45857 45857 45857 45857 45857 45857 45857 45857 ...</p>
<p class="p1"> $ StartTime               : int  32 34 35 35 35 36 36 37 39 39 ...</p>
<p class="p1"> $ StopTime                : int  34 35 35 35 36 36 37 39 39 40 ...</p>
<p class="p1"> $ StepNumber              : num  1.1 1.2 1.1 1.2 1.3 1.2 1.3 1.2 1.3 1.2 ...</p>
<p class="p1"> $ StepTitle               : Factor w/ 38 levels "1.1 Meet the scientist!",..: 1 2 1 2 4 2 4 2 4 2 ...</p>
<p class="p1"> $ StepType                : Factor w/ 10 levels "AssessmentList",..: 5 6 5 6 4 6 4 6 4 6 ...</p>
<p class="p1"> $ TimeSpent.Seconds       : int  138 49 2 2 73 49 102 146 17 40 ...</p>
<p class="p1"> $ StepNumber_factor       : Factor w/ 36 levels "1.1","1.2","1.25",..: 1 2 1 2 4 2 4 2 4 2 ...</p>
<p class="p1"> $ StepNumber_int          : int  1 1 1 1 1 1 1 1 1 1 ...</p>
<p class="p1"> $ StepTitle_int           : int  1 2 1 2 4 2 4 2 4 2 ...</p>
<p class="p2"><br></p>
<p class="p1">This is how I've made a sequence object from SPELL formatted data, and the messages I see as a result:</p>
<p class="p2">> d.labels <- levels(d$StepTitle)</p>
<p class="p1">> d.states <- 1:length(d.labels)</p>
<p class="p1">> d.seq <- seqdef(d, var = c("WorkgroupID", "StartTime", "StopTime", "StepTitle_int"), informat = "SPELL", states = d.states, labels = d.labels, process = TRUE)</p>


<p class="p1"> [>] SPELL data converted into 77 STS sequences</p>
<p class="p1"> [>] found missing values ('NA') in sequence data</p>
<p class="p1"> [>] preparing 77 sequences</p>
<p class="p1"> [>] coding void elements with '%' and missing values with '*'</p>
<p class="p1"> [!] sequence with index: 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77 contains only missing values.</p>


<p class="p1">     This may produce inconsistent results.</p>
<p class="p1"> [>] alphabet (state labels): </p>
<p class="p1">     1 = 1 (1.1 Meet the scientist!)</p>
<p class="p1">     2 = 2 (1.2 Your ideas about cancer)</p>
<p class="p1">     3 = 3 (1.25 Distinguish the phases: A time-lapse animation 2)</p>
<p class="p1">     4 = 4 (1.3 What is mitosis?)</p>
<p class="p1">     5 = 5 (1.3 What is mitosis? )</p>
<p class="p1">     6 = 6 (1.4 Fast and slow dividers)</p>
<p class="p1">     7 = 7 (1.5 Why do some cells divide fast and others slow?)</p>
<p class="p1">     8 = 8 (1.6 A definition of cancer)</p>
<p class="p1">     9 = 9 (2.1 Interphase: When cells don't divide)</p>
<p class="p1">     10 = 10 (2.10 Another look through the microscope)</p>
<p class="p1">     11 = 11 (2.2 Look through the microscope)</p>
<p class="p1">     12 = 12 (2.3 Putting the picture together)</p>
<p class="p1">      ... (38 states)</p>
<p class="p1"> [>] no color palette attributed, provide one to use graphical functions</p>
<p class="p1"> [>] 77 sequences in the data set</p>
<p class="p1"> [>] min/max sequence length: 5/100</p>
<p class="p1">Warning message:</p>
<p class="p1"> [!] no automatic color palete attributed, number of states>12. </p>
<p class="p1">     Use 'cpal' argument to define one.</p>
<p class="p2">If I understand correctly, I think all the missing values are due to the events each beginning at different times (i.e., the website visitors began their visits at different times). I figure I need to do something more about specifying a process time axis than to just say process=TRUE. Is that correct?</p>


<p class="p2">I also tried your suggestion and converted my SPELL data to an STS format:</p>
<p class="p2">> d.sts <- seqformat(d, id="WorkgroupID", begin = "StartTime", end = "StopTime", status = "StepTitle_int", from = "SPELL", to = "STS", process = "TRUE")</p>


<p class="p1"> [>] SPELL data converted into 77 STS sequences</p>
<p class="p2"><br></p>
<p class="p1">But I still see these missing values when I then create a sequence object from the STS formatted data:</p>
<p class="p2">> d.sts.seq <- seqdef(d.sts)</p>
<p class="p1"> [>] found missing values ('NA') in sequence data</p>
<p class="p1"> [>] preparing 77 sequences</p>
<p class="p1"> [>] coding void elements with '%' and missing values with '*'</p>
<p class="p1"> [!] sequence with index: 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77 contains only missing values.</p>


<p class="p1">     This may produce inconsistent results.</p>
<p class="p1"> [>] 15 distinct states appear in the data: </p>
<p class="p1">     1 = 1</p>
<p class="p1">     2 = 2</p>
<p class="p1">     3 = 4</p>
<p class="p1">     4 = 6</p>
<p class="p1">     5 = 7</p>
<p class="p1">     6 = 8</p>
<p class="p1">     7 = 9</p>
<p class="p1">     8 = 11</p>
<p class="p1">     9 = 12</p>
<p class="p1">     10 = 13</p>
<p class="p1">     11 = 14</p>
<p class="p1">     12 = 15</p>
<p class="p1">      ...</p>
<p class="p1"> [>] alphabet (state labels): </p>
<p class="p1">     1 = 1 (1)</p>
<p class="p1">     2 = 2 (2)</p>
<p class="p1">     3 = 4 (4)</p>
<p class="p1">     4 = 6 (6)</p>
<p class="p1">     5 = 7 (7)</p>
<p class="p1">     6 = 8 (8)</p>
<p class="p1">     7 = 9 (9)</p>
<p class="p1">     8 = 11 (11)</p>
<p class="p1">     9 = 12 (12)</p>
<p class="p1">     10 = 13 (13)</p>
<p class="p1">     11 = 14 (14)</p>
<p class="p1">     12 = 15 (15)</p>
<p class="p1">      ... (15 states)</p>
<p class="p1"> [>] no color palette attributed, provide one to use graphical functions</p>
<p class="p1"> [>] 77 sequences in the data set</p>
<p class="p1"> [>] min/max sequence length: 5/100</p>
<p class="p1">Warning message:</p>
<p class="p1"> [!] no automatic color palete attributed, number of states>12. </p>
<p class="p1">     Use 'cpal' argument to define one. </p>
<p class="p2"><br></p><p class="p2">So I'm following the directions in sections 5.2.2 (p.44) and 6.1 (p.50) of the manual to specify a process time axis. I created a new dataset that looks like this:</p>
<p class="p2">> head(d.StartTimes)</p>
<p class="p1">  WorkgroupID StartTime</p>
<p class="p1">1       45813         1</p>
<p class="p1">2       45848        26</p>
<p class="p1">3       45857        32</p>
<p class="p1">4       45859        34</p>
<p class="p1">5       45860        35</p>
<p class="p1">6       45861        36</p>
<p class="p2"><br></p>
<p class="p1">And when I then try to create a sequence object from SPELL formatted data, I get this error and don't know what it means:</p>
<p class="p2">> d.seq <- seqdef(d, var = c("WorkgroupID", "StartTime", "StopTime", "StepTitle_int"), informat = "SPELL", states = d.states, labels = d.labels, process = TRUE, pdata = d.StartTimes, pvar = c("WorkgroupID", "StartTime"))</p>


<p class="p1">Error in rep(state, dur) : invalid 'times' argument</p>
<p class="p1">In addition: Warning messages:</p>
<p class="p1">1: In if (<a href="http://is.na">is.na</a>(age1)) { :</p>
<p class="p1">  the condition has length > 1 and only the first element will be used</p>
<p class="p1">2: In if (age1 >= 0) { :</p>
<p class="p1">  the condition has length > 1 and only the first element will be used</p>
<p class="p1">3: In if (<a href="http://is.na">is.na</a>(sstart) | <a href="http://is.na">is.na</a>(sstop)) { :</p>
<p class="p1">  the condition has length > 1 and only the first element will be used</p>
<p class="p1">4: In if (sstop <= limit) { :</p>
<p class="p1">  the condition has length > 1 and only the first element will be used</p>
<p class="p2"><br></p><p class="p2">I tried it with STS formatted data, and I still see all these missing values:</p>
<p class="p2">> d.seq <- seqdef(d.sts, var = 1:29, states = d.states, labels = d.labels, process = TRUE, pdata = d.StartTimes, pvar = c("WorkgroupID", "StartTime"))</p>
<p class="p1"> [>] found missing values ('NA') in sequence data</p>
<p class="p1"> [>] preparing 77 sequences</p>
<p class="p1"> [>] coding void elements with '%' and missing values with '*'</p>
<p class="p1"> [!] sequence with index: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77 contains only missing values.</p>


<p class="p1">     This may produce inconsistent results.</p>
<p class="p1"> [>] alphabet (state labels): </p>
<p class="p1">     1 = 1 (1.1 Meet the scientist!)</p>
<p class="p1">     2 = 2 (1.2 Your ideas about cancer)</p>
<p class="p1">     3 = 3 (1.25 Distinguish the phases: A time-lapse animation 2)</p>
<p class="p1">     4 = 4 (1.3 What is mitosis?)</p>
<p class="p1">     5 = 5 (1.3 What is mitosis? )</p>
<p class="p1">     6 = 6 (1.4 Fast and slow dividers)</p>
<p class="p1">     7 = 7 (1.5 Why do some cells divide fast and others slow?)</p>
<p class="p1">     8 = 8 (1.6 A definition of cancer)</p>
<p class="p1">     9 = 9 (2.1 Interphase: When cells don't divide)</p>
<p class="p1">     10 = 10 (2.10 Another look through the microscope)</p>
<p class="p1">     11 = 11 (2.2 Look through the microscope)</p>
<p class="p1">     12 = 12 (2.3 Putting the picture together)</p>
<p class="p1">      ... (38 states)</p>
<p class="p1"> [>] no color palette attributed, provide one to use graphical functions</p>
<p class="p1"> [>] 77 sequences in the data set</p>
<p class="p1"> [>] min/max sequence length: 5/29</p>
<p class="p1">Warning message:</p>
<p class="p1"> [!] no automatic color palete attributed, number of states>12. </p>
<p class="p1">     Use 'cpal' argument to define one.</p>
<p class="p2"><br></p>
<p class="p1">I found section 6.5.2 (p. 57) on handling missing values, and tried this:</p>
<p class="p2">> d.sts.noNA <- seqdef(d.sts, left="DEL")</p>
<p class="p1"> [>] found missing values ('NA') in sequence data</p>
<p class="p1"> [>] preparing 77 sequences</p>
<p class="p1"> [>] coding void elements with '%' and missing values with '*'</p>
<p class="p1"> [!] sequence with index: 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77 contains only missing values.</p>


<p class="p1">     This may produce inconsistent results.</p>
<p class="p1"> [>] 15 distinct states appear in the data: </p>
<p class="p1">     1 = 1</p>
<p class="p1">     2 = 2</p>
<p class="p1">     3 = 4</p>
<p class="p1">     4 = 6</p>
<p class="p1">     5 = 7</p>
<p class="p1">     6 = 8</p>
<p class="p1">     7 = 9</p>
<p class="p1">     8 = 11</p>
<p class="p1">     9 = 12</p>
<p class="p1">     10 = 13</p>
<p class="p1">     11 = 14</p>
<p class="p1">     12 = 15</p>
<p class="p1">      ...</p>
<p class="p1"> [>] alphabet (state labels): </p>
<p class="p1">     1 = 1 (1)</p>
<p class="p1">     2 = 2 (2)</p>
<p class="p1">     3 = 4 (4)</p>
<p class="p1">     4 = 6 (6)</p>
<p class="p1">     5 = 7 (7)</p>
<p class="p1">     6 = 8 (8)</p>
<p class="p1">     7 = 9 (9)</p>
<p class="p1">     8 = 11 (11)</p>
<p class="p1">     9 = 12 (12)</p>
<p class="p1">     10 = 13 (13)</p>
<p class="p1">     11 = 14 (14)</p>
<p class="p1">     12 = 15 (15)</p>
<p class="p1">      ... (15 states)</p>
<p class="p1"> [>] no color palette attributed, provide one to use graphical functions</p>
<p class="p1"> [>] 77 sequences in the data set</p>
<p class="p1"> [>] min/max sequence length: 4/100</p>
<p class="p1">Warning message:</p>
<p class="p1"> [!] no automatic color palete attributed, number of states>12. </p>
<p class="p1">     Use 'cpal' argument to define one.</p>
<p class="p2"><br></p><p class="p2">I sort of feel like I'm stumbling around in the dark trying to understand what this all means. Are these missing values problematic? I hope you or someone can clarify for me what's going on, and what's the best way to approach these data.</p>


<p class="p2">Thanks in advance for your help!</p>
<p class="p1">Camillia</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1">On Mon, Apr 9, 2012 at 11:46 AM, Gilbert Ritschard <span class="s2"><<a href="mailto:Gilbert.Ritschard@unige.ch"><span class="s3">Gilbert.Ritschard@unige.ch</span></a>></span> wrote:</p>
<p class="p1">Dear Camillia,</p>
<p class="p2"><br></p>
<p class="p1">It is not clear to me what your StepNumber is. Does it stand for states? How many different values does it take?</p>
<p class="p2"><br></p>
<p class="p1">Any way. I think you are better to first transform your spell data into STS format with the seqformat() function, and then define your state sequence object from the STS data. You will have to specify whether you want to align your sequences on calendar time (default) or a process time (time since a individual start event).</p>


<p class="p2"><br></p>
<p class="p1">Currently, the seqformat function of TraMineR does not support date or time format for the "begin" and "end" arguments. You should first transform those start and end times into integers, so that they can be interpreted as positions in the sequence.</p>


<p class="p2"><br></p>
<p class="p1">For your attempt to use the methods for  event sequences, again, I am not sure what your StepNumber stands for. You use it as if it defined the event occurring at the time stamp. Is that what you want to do?</p>


<p class="p2"><br></p>
<p class="p1">Gilbert</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1">On 07-Apr-12 21:24, Camillia Matuk wrote:</p>
<p class="p1">Hello,</p>
<p class="p2"><br></p>
<p class="p1">I'm having problems getting started with my data, and am very new to both R and to TraMineR. I hope someone can help.</p>
<p class="p2"><br></p>
<p class="p1">Relevant columns in my csv file are WorkgroupID (e.g., 65472), Start and Stop times (e.g., 11/28/11 9:37 AM), and StepNumber (e.g., "4.5").</p>
<p class="p2"><br></p>
<p class="p1">After reading in my data, this is what I did:</p>
<p class="p2"><br></p>
<p class="p1">> WorkgroupID_factor <- factor(d$WorkgroupID)</p>
<p class="p1">> StepNumber_factor <- factor(d$StepNumber)</p>
<p class="p1">> d <- data.frame(d, WorkgroupID_factor, StepNumber_factor)</p>
<p class="p2"><br></p>
<p class="p1">I figured I should treat this as SPELL formatted data, so I did this:</p>
<p class="p2"><br></p>
<p class="p1">> d.labels <- seqstatl(d$StepNumber_factor)</p>
<p class="p1">> d.states <- 1:length(d.labels)</p>
<p class="p2"><br></p>
<p class="p1">But I get error messages when I do this:</p>
<p class="p1">> d.seq <- seqdef(d, var = c("WorkgroupID_factor", "StartTime", "StopTime", "StepNumber_factor"), informat = "SPELL", states = d.states, labels = d.labels, process = FALSE)</p>


<p class="p2"><br></p>
<p class="p1">Error in Summary.factor(c(NA_integer_, NA_integer_, NA_integer_, NA_integer_,  :</p>
<p class="p1"> min not meaningful for factors</p>
<p class="p1">In addition: Warning messages:</p>
<p class="p1">1: In Ops.factor(begincolumn, 1) : < not meaningful for factors</p>
<p class="p1">2: In Ops.factor(endcolumn, begincolumn) : - not meaningful for factors</p>
<p class="p1">3: In Ops.factor(begincolumn, 0) : > not meaningful for factors</p>
<p class="p2"><br></p>
<p class="p1">Abandoning that, I then tried treating my data as though it were in TSE format. I'm not sure if that's proper thing to do...</p>
<p class="p1">d.seqe <- seqecreate(id = d$WorkgroupID_factor, timestamp = d$StartTime, event = d$StepNumber_factor)</p>
<p class="p2"><br></p>
<p class="p1">This works, although I'm still unsure about how to read it:</p>
<p class="p1">> print(d.seqe[2]) #Displays the sequence of events</p>
<p class="p1">[1] 67.00-(1.1)-2.00-(1.2)-3.00-(1.3)-3.00-(1.4)-2.00-(1.5)-2.00-(1.4)-3.00-(1.5,1.5,1.6)-198.00-(1.6)-1.00-(1.5,1.5,1.6)-1.00-(1.4,1.4,1.5)-2.00-(2.1,2.3)-4.00-(2.3,2.3)-1.00-(2.3,2.3,2.3,2.4)-1.00-(2.3,2.3,2.4)-3.00-(2.3,2.3)-3.00-(2.3)-7.00-(2.3,2.4)-9.00-(2.3,2.4,2.4)-167.00-(2.4,2.4,2.5,2.6)-(...)</p>


<p class="p2"><br></p>
<p class="p1">But when I run this command, R hangs and I have to force quit and restart:</p>
<p class="p1">d.fsubseq <- seqefsub(d.seqe, minSupport = 50)</p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1">I hope someone can point out what I'm doing wrong. Thanks for any assistance!</p>
<p class="p2"><br></p>
<p class="p1">-- </p>
<p class="p1">Camillia</p>
<p class="p2"><br></p>
<p class="p3"><span class="s4"><a href="http://sites.google.com/site/cfmatuk/">http://sites.google.com/site/cfmatuk/</a></span></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1">_______________________________________________</p>
<p class="p1">Traminer-users mailing list</p>
<p class="p3"><span class="s4"><a href="mailto:Traminer-users@lists.r-forge.r-project.org">Traminer-users@lists.r-forge.r-project.org</a></span></p>
<p class="p3"><span class="s4"><a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/traminer-users">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/traminer-users</a></span></p>
<p class="p4"><br></p>
<p class="p5">-- </p>
<p class="p5">Gilbert Ritschard, Department of Economics and</p>
<p class="p5">Institute for Demographic and Life Course Studies,</p>
<p class="p5">University of Geneva, 40, bd du Pont-d'Arve, CH-1211 Genève 4, Switzerland</p>
<p class="p3"><span class="s4"><a href="http://mephisto.unige.ch/">http://mephisto.unige.ch</a></span></p>
<p class="p4"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p2"><br></p>
<p class="p1">-- </p>
<p class="p1">Camillia</p>
<p class="p2"><br></p>
<p class="p6"><span class="s4"><a href="http://sites.google.com/site/cfmatuk/">http://sites.google.com/site/cfmatuk/</a></span></p></div>