[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:54:53 BRT 2012


Olá

Estou com mais uma duvida!

Gostaria de recoficar uma variável x, por exemplo:

se x=1 e y=1, recodifico x de 1 para 0, estou usando o comando abaixo, mas
não estou conseguindo:

dados$x <- ifelse(dados$x ==1 & dados$y ==1, 1,0)

Qual a melhor forma de fazer isso?

Abraços

Em 23 de março de 2012 10:50, Sérgio Henrique almeida da silva ju <
sergio.edfisica em gmail.com> escreveu:

> 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
>
>
>


-- 
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/801aac83/attachment.html>


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