Oi Benilton<div><br></div><div>Dá o seguinte erro</div><div><br></div><div>dados$x2<- f('x', dados)</div><div><br></div><div>Error in substr(dat[[v]], dat[[v1]], n) : invalid substring argument(s)<br><br><div class="gmail_quote">
<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Em 11 de abril de 2012 14:48, Benilton Carvalho <span dir="ltr"><<a href="mailto:beniltoncarvalho@gmail.com">beniltoncarvalho@gmail.com</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">o codigo q enviei deve fazer algo proximo do q vc quer... so' copiar/colar e verificar os resultados...<div class="HOEnZb">
<div class="h5"><div><br><div class="gmail_quote">2012/4/11 Sérgio Henrique almeida da silva ju <span dir="ltr"><<a href="mailto:sergio.edfisica@gmail.com" target="_blank">sergio.edfisica@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Oi Benilton<div><br></div><div>Obrigado pela resposta!</div><div><br></div><div>Tentei colocar o exemplo mais reproduzível o possível, mas o banco que estou trabalhando é um pouco complicado mesmo, por isso a dificuldade...</div>




<div><br></div><div>Sim, quando falo 2a linha é o 2o caractere da string.</div><div><br></div><div>Quando tem o 0 significa que não existe o valor (A360) na linha da variável, portanto eu busco valor a partir da posição do caractere indicado pela variável.</div>




<div> No SPSS eu uso o seguinte comando:</div><div><br></div><div><div>IF  (x1 = 2) x2=CHAR.SUBSTR(x,2,4).</div><div>IF  (x1 = 7) x2=CHAR.SUBSTR(x,7,4).</div><div>IF  (x1 = 12) x2=CHAR.SUBSTR(x,12,4).</div></div><div>IF  (y1 = 2) y2=CHAR.SUBSTR(y,2,4).</div>



<div>IF  (y1 = 7) y2=CHAR.SUBSTR(y,7,4).</div><div>IF  (y1 = 12) y2=CHAR.SUBSTR(y,12,4).</div><div><br><div class="gmail_quote">Em 11 de abril de 2012 14:02, Benilton Carvalho <span dir="ltr"><<a href="mailto:beniltoncarvalho@gmail.com" target="_blank">beniltoncarvalho@gmail.com</a>></span> escreveu:<div>


<div><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">1) assumindo q qdo vc fala "2a linha" vc quer dizer "2o caractere da string"... 2) colocando um exemplo apropriadamente reproduzivel... 3) assumindo q se vc tiver 0, vc nao quer nada na saida...<div>




<br>

</div><div>tmp = data.frame(x=c('<span>*A360', '</span><span>*A330', '</span><span>*A340', '</span><span>*A340</span><span>*A360', </span><span>'*A330</span><span>*A340</span><span>*A360'),</span></div>






<div><font color="#222222" face="arial, sans-serif">                          y=c(</font><span>'</span><span>*A340</span><span>*A360', </span>'<span>*A360',</span><span> </span><span>'*A330</span><span>*A340</span><span>*A360', </span><span>'</span><span>*A340',</span><span> '</span><span>*A330'),</span></div>






<div><font color="#222222" face="arial, sans-serif">                          x1=c(2, 0, 0, 7, 12),</font></div><div><font color="#222222" face="arial, sans-serif">                          y1=c(7, 2, 12, 0, 0), stringsAsFactors=FALSE)</font></div>






<div><font color="#222222" face="arial, sans-serif"><br></font></div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif">f = function(v, dat, v1=paste(v, 1, sep='')){</span></div><div><div><span style="color:rgb(34,34,34);font-family:arial,sans-serif">n = ifelse(dat[[v1]] > 0, nchar(dat[[v]]), NA)</span></div>






<div><span style="color:rgb(34,34,34);font-family:arial,sans-serif">substr(dat[[v]],</span><span style="color:rgb(34,34,34);font-family:arial,sans-serif"> </span><span style="color:rgb(34,34,34);font-family:arial,sans-serif">dat[[v1]]</span><span style="color:rgb(34,34,34);font-family:arial,sans-serif">, n)</span></div>






<div><font color="#222222" face="arial, sans-serif">}</font></div></div><div><font color="#222222" face="arial, sans-serif"><br></font></div><div><font color="#222222" face="arial, sans-serif">f('x', tmp)</font></div>






<div><font color="#222222" face="arial, sans-serif">f('y', tmp)</font></div><div><font color="#222222" face="arial, sans-serif"><br></font></div><div><font color="#222222" face="arial, sans-serif">b</font></div><div>






<font color="#222222" face="arial, sans-serif"><br></font><div><br></div><div><br><br><div class="gmail_quote"><div><div>2012/4/11 Sérgio Henrique almeida da silva ju <span dir="ltr"><<a href="mailto:sergio.edfisica@gmail.com" target="_blank">sergio.edfisica@gmail.com</a>></span><br>






</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Olá <div><br></div><div>alguns dias atrás vocês me ajudaram na criação de variáveis (x1 e y1), onde a mesmas me mostram a posição inicial de um certo valor (A360) em uma outra variável:</div>






<div><br></div><div>A variável x1 mostra que o A360 inicia-se na segunda linha da variável X e assim por diante.   </div>
<div><br></div><div>Só que agora eu queria criar uma outra variável x2 e y2 que extrai o valor de A360 das variáveis</div><div><br></div><div>exemplo</div><div><br></div><div>Se x1 = 2 eu quero uma substring de x começando da 2ª linha até a 4ª me dando dessa forma o valor A360</div>







<div>Se y1 = 7 eu quero uma substring de y começando da 7ª linha até a 10ª me dando dessa forma o valor A360
</div><div><br></div><div>e assim por diante.</div><div><br></div><div>Como faço?</div><div><br></div><div><table border="0" cellpadding="0" cellspacing="0" width="262" style="border-collapse:collapse;width:198pt">
 <colgroup><col width="110" span="2" style="width:83pt">
 <col width="21" span="2" style="width:16pt">
 </colgroup><tbody><tr height="20" style="min-height:15.0pt">
  <td height="20" width="110" style="min-height:15.0pt;width:83pt">x</td>
  <td width="110" style="width:83pt">y</td>
  <td width="21" style="width:16pt">x1 </td>
  <td width="21" style="width:16pt">y1</td>
 </tr>
 <tr height="20" style="min-height:15.0pt">
  <td height="20" style="min-height:15.0pt">*A360</td>
  <td>*A340*A360</td>
  <td align="right">2</td>
  <td align="right">7</td>
 </tr>
 <tr height="20" style="min-height:15.0pt">
  <td height="20" style="min-height:15.0pt">*A330</td>
  <td>*A360</td>
  <td align="right">0</td>
  <td align="right">2</td>
 </tr>
 <tr height="20" style="min-height:15.0pt">
  <td height="20" style="min-height:15.0pt">*A340</td>
  <td>*A330*A340*360</td>
  <td align="right">0</td>
  <td align="right">12</td>
 </tr>
 <tr height="20" style="min-height:15.0pt">
  <td height="20" style="min-height:15.0pt">*A340*A360</td>
  <td>*A340</td>
  <td align="right">7</td>
  <td align="right">0</td>
 </tr>
 <tr height="20" style="min-height:15.0pt">
  <td height="20" style="min-height:15.0pt">*A330*A340*360</td>
  <td>*A330</td>
  <td align="right">12</td>
  <td align="right">0</td>
 </tr></tbody></table><br><div class="gmail_quote">Obrigado</div><span><font color="#888888"><div class="gmail_quote"><br></div>-- <br>Sérgio Henrique Almeida da Silva Junior<br>Doutorando em Epidemiologia em Saúde Pública<br>






Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ<br>
<a href="http://lattes.cnpq.br/1611345552843383" target="_blank">http://lattes.cnpq.br/1611345552843383</a> <br>Tel: (21) 94429486/78101651 id: 123*20942<br><br><br>
</font></span></div>
<br></div></div>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div></div></div><div><div><br><br clear="all">


<div><br></div>-- <br>

Sérgio Henrique Almeida da Silva Junior<br>Doutorando em Epidemiologia em Saúde Pública<br>Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ<br><a href="http://lattes.cnpq.br/1611345552843383" target="_blank">http://lattes.cnpq.br/1611345552843383</a> <br>




Tel: (21) 94429486/78101651 id: 123*20942<br><br><br>
</div></div></div>
<br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>
Sérgio Henrique Almeida da Silva Junior<br>Doutorando em Epidemiologia em Saúde Pública<br>Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ<br><a href="http://lattes.cnpq.br/1611345552843383">http://lattes.cnpq.br/1611345552843383</a> <br>
Tel: (21) 94429486/78101651 id: 123*20942<br><br><br>
</div>