<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    Hi Simon,<br>
    <br>
    I answer in English as other users may be interested by your
    question. There are several ways to truncate sequences to a varying
    length.<br>
    <br>
    Suppose we are working with the mvad data set and we would like to
    truncate sequence to a random varying length<br>
    <br>
    ## Creating the mvad sequence<br>
    library(TraMineR)<br>
    data(mvad)<br>
    <br>
    mvad.alphabet &lt;- c("employment", "FE", "HE", "joblessness",
    "school",<br>
    &nbsp;&nbsp;&nbsp; "training")<br>
    mvad.labels &lt;- c("employment", "further education", "higher
    education",<br>
    &nbsp;&nbsp;&nbsp; "joblessness", "school", "training")<br>
    mvad.scodes &lt;- c("EM", "FE", "HE", "JL", "SC", "TR")<br>
    mvad.seq &lt;- seqdef(mvad, 17:86, alphabet = mvad.alphabet, states
    = mvad.scodes,<br>
    &nbsp;&nbsp;&nbsp; labels = mvad.labels, xtstep = 6)<br>
    <br>
    <br>
    <br>
    ## Here we generate a random integer to cut the sequences<br>
    ## The results is a vector of length 712 with integer values ranging
    from 10 to 69<br>
    ## This should be the length you would like to use to truncate your
    sequences<br>
    randomlength &lt;- as.integer(runif(nrow(mvad))*60)+10<br>
    head(randomlength)<br>
    <br>
    ## On way is to use a "position" matrix, which store, for each cell
    the current position in the sequence<br>
    positionindex &lt;- matrix(1:70, nrow=nrow(mvad), ncol=70,
    byrow=TRUE)<br>
    <br>
    head(positionindex)<br>
    <br>
    ## Using this position matrix, we can affect the "void" attribute
    (i.e. end of sequence) to each position <br>
    ## that are greater than the truncating date<br>
    mvad.seq[positionindex &gt; randomlength] &lt;- attr(mvad.seq,
    "void")<br>
    <br>
    ## Checking the results<br>
    all.equal(as.numeric(seqlength(mvad.seq)), randomlength)<br>
    <br>
    ## Plotting result<br>
    seqiplot(mvad.seq)<br>
    <br>
    ## Another way would be to use a loop <br>
    ## This may take much longer to compute<br>
    ## Personally, I prefer the previous solution<br>
    <br>
    mvad.seq &lt;- seqdef(mvad, 17:86, alphabet = mvad.alphabet, states
    = mvad.scodes,<br>
    &nbsp;&nbsp;&nbsp; labels = mvad.labels, xtstep = 6)<br>
    <br>
    ## For each sequence<br>
    for(i in 1:length(randomlength)){<br>
    &nbsp;&nbsp;&nbsp; ## for the given position until the end assign the "void"
    element<br>
    &nbsp;&nbsp;&nbsp; ## We should add one to randomlength to cut after the
    randomlength<br>
    &nbsp;&nbsp;&nbsp; mvad.seq[i, (randomlength[i]+1):ncol(mvad.seq)] &lt;-
    attr(mvad.seq, "void")<br>
    }<br>
    <br>
    seqiplot(mvad.seq)<br>
    ## Checking the results<br>
    all.equal(as.numeric(seqlength(mvad.seq)), randomlength)<br>
    <br>
    <br>
    Hope this helps.<br>
    <br>
    Matthias Studer<br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    Le 19.05.2011 16:17, Simon PAYE a &eacute;crit&nbsp;:
    <blockquote
cite="mid:31890729.39661.1305814646381.JavaMail.root@aten1.sciences-po.fr"
      type="cite">
      <style>
&lt;!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
--&gt;
</style><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
      <link rel="File-List"
        href="file:///C:%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">
      <!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:View>Normal</w:View>
  <w:Zoom>0</w:Zoom>
  <w:HyphenationZone>21</w:HyphenationZone>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
 </w:LatentStyles>
</xml><![endif]-->
      <style>
&lt;!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0cm;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;
        mso-header-margin:35.4pt;
        mso-footer-margin:35.4pt;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
--&gt;
</style><!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
        {mso-style-name:"Tableau Normal";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";
        mso-ansi-language:#0400;
        mso-fareast-language:#0400;
        mso-bidi-language:#0400;}
</style>
<![endif]-->
      <p class="MsoNormal">Bonjour chers coll&egrave;gues,</p>
      <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
      <p class="MsoNormal">Je fais irruption dans votre liste pour une
        question qui me
        travaille depuis quelque temps et qui potentiellement peut
        int&eacute;resser beaucoup
        d&#8217;analystes de s&eacute;quences avec des dur&eacute;es vari&eacute;es (notamment les
        carri&egrave;res).</p>
      <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
      <p class="MsoNormal">Je dispose d&#8217;une base d&#8217;une centaine de
        carri&egrave;res d&#8217;universitaires
        cod&eacute;es en STS d&#8217;une longueur de 5 &agrave; 47 ann&eacute;es.</p>
      <p class="MsoNormal">Pour mes analyses, j&#8217;ai besoin de les aligner
        &agrave; droite (&#8216;external
        time reference&#8217; ou &#8216;calendar time axis&#8217;), ou de les aligner &agrave;
        gauche (&#8216;internal
        time reference&#8217; ou &#8216;process time axis&#8217;). Jusqu&#8217;ici, pas de
        probl&egrave;me, car je
        peux passer d&#8217;un mod&egrave;le &agrave; l&#8217;autre en utilisant les options
        &#8216;left&#8217; et &#8216;right&#8217; de
        seqdef.</p>
      <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
      <p class="MsoNormal">Tout se complique lorsque je souhaite
        tronquer les s&eacute;quences
        selon une date historique variable selon les individus. </p>
      <p class="MsoNormal">Dans mon cas, c&#8217;est l&#8217;ann&eacute;e d&#8217;obtention de la
        tenure (emploi
        permanent), que j&#8217;ai renseign&eacute;e dans une variable appel&eacute;e
        &#8216;year.tenure&#8217;. Si je
        veux, par exemple, analyser les s&eacute;quences menant &agrave; la tenure en
        les alignant
        toutes &agrave; droite selon l&#8217;ann&eacute;e d&#8217;obtention de la tenure, comment
        dois-je
        proc&eacute;der&nbsp;?</p>
      <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
      <p class="MsoNormal">Je n&#8217;ai pas trouv&eacute; de solution dans le
        &#8216;user&#8217;s guide&#8217;, ni
        dans les autres documents disponibles sur le site de TraMineR.</p>
      <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
      <p class="MsoNormal">Merci pour votre r&eacute;ponse et pour tout ce que
        vous avez fait
        jusque l&agrave;,</p>
      <p class="MsoNormal"><o:p>&nbsp;</o:p></p>
      <p class="MsoNormal">Simon</p>
      &nbsp;
      <o:p>&nbsp;</o:p><br>
      -- <br>
      Simon Paye<br>
      Doctorant en sociologie<br>
      Centre de Sociologie des Organisations - Sciences Po Paris<br>
      <br>
      Tel: 0148741267<br>
      <hr>
      --------------------------------------------------------------------------
Tous
      les courriers &eacute;lectroniques &eacute;mis depuis la messagerie
      de Sciences Po doivent respecter des conditions d'usages.
      Pour les consulter rendez-vous sur
<a class="moz-txt-link-freetext" href="http://www.ressources-numeriques.sciences-po.fr/confidentialite_courriel.htm">http://www.ressources-numeriques.sciences-po.fr/confidentialite_courriel.htm</a>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Traminer-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Traminer-users@lists.r-forge.r-project.org">Traminer-users@lists.r-forge.r-project.org</a>
<a class="moz-txt-link-freetext" 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>
</pre>
    </blockquote>
  </body>
</html>