[R-br] Posição de um valor em uma variável

Sérgio Henrique almeida da silva ju sergio.edfisica em gmail.com
Sexta Março 23 10:50:24 BRT 2012


Oi

Obrigado pela ajuda! Deu tudo certinho...

Abraços

Em 21 de março de 2012 20:06, Benilton Carvalho
<beniltoncarvalho em gmail.com>escreveu:

> A minha solucao inicial continua valida:
>
> X = c('12A3', '1A23', 'A123', '123A')
> pmax(regexpr("A", X), 0)
>
>
> > X = c('12A3', '1A23', 'A123', '123A')
> > pmax(regexpr("A", X), 0)
> [1] 3 2 1 4
> attr(,"match.length")
> [1] 1 1 1 1
> attr(,"useBytes")
> [1] TRUE
> >
>
> b
>
> 2012/3/21 Sérgio Henrique almeida da silva ju <sergio.edfisica em gmail.com>:
> > 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 em 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 em 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 em 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 em 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 em 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 em 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
> >
> >
> >
> > _______________________________________________
> > R-br mailing list
> > R-br em 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.
> _______________________________________________
> R-br mailing list
> R-br em 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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120323/507c0e2e/attachment.html>


Mais detalhes sobre a lista de discussão R-br