o q vc tentou das recomendacoes do meu ultimo email e quais os resultados?
Oi BeniltonQuando executo seu comando dá certinho, porém quando passo para os meus dados dá esse erro.A variável tem que ser um vetor?
Em 11 de abril de 2012 15:05, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
entao vc precisa dar um exemplo reproduzivel do seu conjunto de dados...se o mesmo problema acontecer com:f('x', dados[1:10,])entao cole aqui o resultado de:dput(dados[1:10,])se o problema nao acontecer nesse exemplo reduzido, siga as recomendacoes do guia de postagem (no rodape de toda mensagem) no que se refere a compartilhar arquivos.benilton2012/4/11 Sérgio Henrique almeida da silva ju <sergio.edfisica@gmail.com>
Oi BeniltonDá o seguinte errodados$x2<- f('x', dados)Error in substr(dat[[v]], dat[[v1]], n) : invalid substring argument(s)Em 11 de abril de 2012 14:48, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
o codigo q enviei deve fazer algo proximo do q vc quer... so' copiar/colar e verificar os resultados...2012/4/11 Sérgio Henrique almeida da silva ju <sergio.edfisica@gmail.com>
Oi BeniltonObrigado pela resposta!Tentei colocar o exemplo mais reproduzível o possível, mas o banco que estou trabalhando é um pouco complicado mesmo, por isso a dificuldade...Sim, quando falo 2a linha é o 2o caractere da string.Quando tem o 0 significa que não existe o valor (A360) na linha da variável, portanto eu busco valor a partir da posição do caractere indicado pela variável.No SPSS eu uso o seguinte comando:IF (x1 = 2) x2=CHAR.SUBSTR(x,2,4).IF (x1 = 7) x2=CHAR.SUBSTR(x,7,4).IF (x1 = 12) x2=CHAR.SUBSTR(x,12,4).IF (y1 = 2) y2=CHAR.SUBSTR(y,2,4).IF (y1 = 7) y2=CHAR.SUBSTR(y,7,4).IF (y1 = 12) y2=CHAR.SUBSTR(y,12,4).Em 11 de abril de 2012 14:02, Benilton Carvalho <beniltoncarvalho@gmail.com> escreveu:
1) assumindo q qdo vc fala "2a linha" vc quer dizer "2o caractere da string"... 2) colocando um exemplo apropriadamente reproduzivel... 3) assumindo q se vc tiver 0, vc nao quer nada na saida...
tmp = data.frame(x=c('*A360', '*A330', '*A340', '*A340*A360', '*A330*A340*A360'),y=c('*A340*A360', '*A360', '*A330*A340*A360', '*A340', '*A330'),x1=c(2, 0, 0, 7, 12),y1=c(7, 2, 12, 0, 0), stringsAsFactors=FALSE)f = function(v, dat, v1=paste(v, 1, sep='')){n = ifelse(dat[[v1]] > 0, nchar(dat[[v]]), NA)substr(dat[[v]], dat[[v1]], n)}f('x', tmp)f('y', tmp)b2012/4/11 Sérgio Henrique almeida da silva ju <sergio.edfisica@gmail.com>
_______________________________________________Oláalguns dias atrás vocês me ajudaram na criação de variáveis (x1 e y1), onde a mesmas me mostram a posição inicial de um certo valor (A360) em uma outra variável:A variável x1 mostra que o A360 inicia-se na segunda linha da variável X e assim por diante.Só que agora eu queria criar uma outra variável x2 e y2 que extrai o valor de A360 das variáveisexemploSe x1 = 2 eu quero uma substring de x começando da 2ª linha até a 4ª me dando dessa forma o valor A360Se y1 = 7 eu quero uma substring de y começando da 7ª linha até a 10ª me dando dessa forma o valor A360e assim por diante.Como faço?
x y x1 y1 *A360 *A340*A360 2 7 *A330 *A360 0 2 *A340 *A330*A340*360 0 12 *A340*A360 *A340 7 0 *A330*A340*360 *A330 12 0 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
_______________________________________________
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
_______________________________________________
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
_______________________________________________
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.