Posição de um valor em uma variável

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

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

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

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

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

O seu vetor Y deve ser: sapply(gregexpr("A",X),"[",i=1) Abs, D 2012/3/21 Sérgio Henrique almeida da silva ju <sergio.edfisica@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@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
_______________________________________________ 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.

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@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@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
_______________________________________________ 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.

Oi Obrigado pela ajuda! Deu tudo certinho... Abraços Em 21 de março de 2012 20:06, Benilton Carvalho <beniltoncarvalho@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@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@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
_______________________________________________ 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.
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

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@gmail.com> escreveu:
Oi
Obrigado pela ajuda! Deu tudo certinho...
Abraços
Em 21 de março de 2012 20:06, Benilton Carvalho < beniltoncarvalho@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@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@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
_______________________________________________ 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.
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
-- 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

Use && ao invés de um & só! 2012/3/23 Sérgio Henrique almeida da silva ju <sergio.edfisica@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@gmail.com> escreveu:
Oi
Obrigado pela ajuda! Deu tudo certinho...
Abraços
Em 21 de março de 2012 20:06, Benilton Carvalho <beniltoncarvalho@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@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@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
_______________________________________________ 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.
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
-- 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.

Oi Valeu mais uma vez pela ajuda! Abraços Em 23 de março de 2012 10:55, FHRB Toledo <fernandohtoledo@gmail.com>escreveu:
Use && ao invés de um & só!
2012/3/23 Sérgio Henrique almeida da silva ju <sergio.edfisica@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@gmail.com> escreveu:
Oi
Obrigado pela ajuda! Deu tudo certinho...
Abraços
Em 21 de março de 2012 20:06, Benilton Carvalho <beniltoncarvalho@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@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@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
_______________________________________________ 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.
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
-- 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.
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

por favor, crie um novo topico para postar um novo problema... e sempre nos de um exemplo que possamos reproduzir. sobre a sua pergunta, vc nem precisa do ifelse: novoX = as.integer(dados$x ==1 & dados$y ==1) b 2012/3/23 Sérgio Henrique almeida da silva ju <sergio.edfisica@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@gmail.com> escreveu:
Oi
Obrigado pela ajuda! Deu tudo certinho...
Abraços
Em 21 de março de 2012 20:06, Benilton Carvalho <beniltoncarvalho@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@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@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
_______________________________________________ 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.
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
-- 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.

Oi Benilton Desculpe, não sabia dessa regra. Obrigado mais uma vez... Abraços Em 23 de março de 2012 10:59, Benilton Carvalho <beniltoncarvalho@gmail.com>escreveu:
por favor, crie um novo topico para postar um novo problema... e sempre nos de um exemplo que possamos reproduzir.
sobre a sua pergunta, vc nem precisa do ifelse:
novoX = as.integer(dados$x ==1 & dados$y ==1)
b
2012/3/23 Sérgio Henrique almeida da silva ju <sergio.edfisica@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@gmail.com> escreveu:
Oi
Obrigado pela ajuda! Deu tudo certinho...
Abraços
Em 21 de março de 2012 20:06, Benilton Carvalho <beniltoncarvalho@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@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@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
_______________________________________________ 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.
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
-- 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.
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
participantes (4)
-
Benilton Carvalho
-
Daniel C Bezerra
-
FHRB Toledo
-
Sérgio Henrique almeida da silva ju