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

Benilton Carvalho beniltoncarvalho em gmail.com
Quarta Março 21 20:06:05 BRT 2012


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.


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