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

FHRB Toledo fernandohtoledo em gmail.com
Sexta Março 23 10:55:59 BRT 2012


Use && ao invés de um & só!

2012/3/23 Sérgio Henrique almeida da silva ju <sergio.edfisica em gmail.com>:
> 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
>
>
>
> _______________________________________________
> 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