Oi Benilton
 
Deixa eu tentar explicar
 
Vamos supor que eu tenha uma variável X com alguns códigos:
 
X
12A3
1A23
A123
123A

E eu queira criar uma outra variável Y que me diga por exemplo em qual posição o valor de A esta em cada linha.
 
   X                 Y
12A3              3
1A23              2
A123              1
123A              4
 
Existe algum comando pra isso?
 
Abraços
 
Em 21 de março de 2012 16:41, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
O seu linhaa deve ter 100 linhas enquanto o conjunto de dados tem1.1M. Mas como vc não proveu um exemplo reproduzível, não posso ajudar além disso. b


On Wednesday, March 21, 2012, Sérgio Henrique almeida da silva ju <sergio.edfisica@gmail.com> wrote:
> Oi Benilton
>
> Obrigado por sua resposta
>
> É isso mesmo! Quer dizer que ele inicia no segundo caractere da variável linhaa, preciso saber exatamente a posição dele, pois tenho que procurar em um banco com milhões de casos se existe esse código. No SPSS sai certinho...
>
> Não consegui rodar seu comando, dá o seguinte erro:
>
>> dados$x=pmax(regexpr("A30", linhaa), 0)
>
> Erro em `$<-.data.frame`(`*tmp*`, "x", value = c(-1L, -1L, -1L, -1L, : replacement has 1103088 rows, data has 100
>
> Abraços
>
>
> Em 21 de março de 2012 14:43, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
>
> regexpr(), assumindo que, qdo vc diz "segunda linha", vc realmente queira dizer "segundo caracter da respectiva linha".
> se vc precisa mesmo que os outros valores sejam 0, algo como o seguinte funciona como ponto de partida:
> pmax(regexpr("A30", linha), 0)
>
> b
> 2012/3/21 Sérgio Henrique almeida da silva ju <sergio.edfisica@gmail.com>
>
> Olá
>
> Estou trabalhando com um banco de mortalidade (SIM) no R e gostaria de uma ajuda.
>
> Quero criar uma variável que me diz a posição de um valor em uma variável
>
> Exemplo:
>
> Banco Original
> linhaa linhab
>
> *T792 *X990
> *S069 *X954
> *R092*T792 *J189
> *R571 *T792
> *A301
> *T792 *X990*A302
> Criando a variável x1 e x2
>
> linhaa linhab x1 x2
> *T792 *X990 0 0
> *S069 *X954 0 0
> *R092*T792 *J189 0 0
> *R571 *T792 0 0
> *A301
> 2 0
> *T792 *X990*A302 0 7
> Ou seja, o valor A30, começa na segunda linha da variável linhaa e na 7 linha da variável linhab
>
> Como rodar isso no R, no SPSS o comando é:
>
> compute x1 = index(linhaa, "A30").
> compute x2 = index(linhab, "A30").
> ...
> execute.
>
>
> Obrigado
>
> --
> Sérgio Henrique Almeida da Silva Junior
> Doutorando em Epidemiologia em Saúde Pública
> Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ
> http://lattes.cnpq.br/1611345552843383
> Tel: (21) 94429486/78101651 id: 123*20942
>
>
>
> _______________________________________________
> R-br mailing list
> R-br@listas.c3sl.ufpr.br
>
>
>
> --
> Sérgio Henrique Almeida da Silva Junior
> Doutorando em Epidemiologia em Saúde Pública
> Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ
> http://lattes.cnpq.br/1611345552843383
> Tel: (21) 94429486/78101651 id: 123*20942
>
>
>

_______________________________________________
R-br mailing list
R-br@listas.c3sl.ufpr.br
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.



--
Sérgio Henrique Almeida da Silva Junior
Doutorando em Epidemiologia em Saúde Pública
Escola Nacional de Saúde Pública Sérgio Arouca - ENSP/FIOCRUZ
http://lattes.cnpq.br/1611345552843383
Tel: (21) 94429486/78101651 id: 123*20942