<!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 <- c("employment", "FE", "HE", "joblessness",
    "school",<br>
        "training")<br>
    mvad.labels <- c("employment", "further education", "higher
    education",<br>
        "joblessness", "school", "training")<br>
    mvad.scodes <- c("EM", "FE", "HE", "JL", "SC", "TR")<br>
    mvad.seq <- seqdef(mvad, 17:86, alphabet = mvad.alphabet, states
    = mvad.scodes,<br>
        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 <- 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 <- 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 > randomlength] <- 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 <- seqdef(mvad, 17:86, alphabet = mvad.alphabet, states
    = mvad.scodes,<br>
        labels = mvad.labels, xtstep = 6)<br>
    <br>
    ## For each sequence<br>
    for(i in 1:length(randomlength)){<br>
        ## for the given position until the end assign the "void"
    element<br>
        ## We should add one to randomlength to cut after the
    randomlength<br>
        mvad.seq[i, (randomlength[i]+1):ncol(mvad.seq)] <-
    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 écrit :
    <blockquote
cite="mid:31890729.39661.1305814646381.JavaMail.root@aten1.sciences-po.fr"
      type="cite">
      <style>
<!--
 /* 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;}
-->
</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>
<!--
 /* 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;}
-->
</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ègues,</p>
      <p class="MsoNormal"><o:p> </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éresser beaucoup
        d’analystes de séquences avec des durées variées (notamment les
        carrières).</p>
      <p class="MsoNormal"><o:p> </o:p></p>
      <p class="MsoNormal">Je dispose d’une base d’une centaine de
        carrières d’universitaires
        codées en STS d’une longueur de 5 à 47 années.</p>
      <p class="MsoNormal">Pour mes analyses, j’ai besoin de les aligner
        à droite (‘external
        time reference’ ou ‘calendar time axis’), ou de les aligner à
        gauche (‘internal
        time reference’ ou ‘process time axis’). Jusqu’ici, pas de
        problème, car je
        peux passer d’un modèle à l’autre en utilisant les options
        ‘left’ et ‘right’ de
        seqdef.</p>
      <p class="MsoNormal"><o:p> </o:p></p>
      <p class="MsoNormal">Tout se complique lorsque je souhaite
        tronquer les séquences
        selon une date historique variable selon les individus. </p>
      <p class="MsoNormal">Dans mon cas, c’est l’année d’obtention de la
        tenure (emploi
        permanent), que j’ai renseignée dans une variable appelée
        ‘year.tenure’. Si je
        veux, par exemple, analyser les séquences menant à la tenure en
        les alignant
        toutes à droite selon l’année d’obtention de la tenure, comment
        dois-je
        procéder ?</p>
      <p class="MsoNormal"><o:p> </o:p></p>
      <p class="MsoNormal">Je n’ai pas trouvé de solution dans le
        ‘user’s guide’, ni
        dans les autres documents disponibles sur le site de TraMineR.</p>
      <p class="MsoNormal"><o:p> </o:p></p>
      <p class="MsoNormal">Merci pour votre réponse et pour tout ce que
        vous avez fait
        jusque là,</p>
      <p class="MsoNormal"><o:p> </o:p></p>
      <p class="MsoNormal">Simon</p>
       
      <o:p> </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 électroniques é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>