
Bom, sem saber como sao seus dados, nao ha' muito o que fazer... minhas recomendacoes continuam as mesmas de 2 emails atras... eh possivel q os nomes das variaveis nao sejam como vc descreveu inicialmente (x e x1, y e y1)... e, dada a funcao que te passei, vc soh precisaria dar o nome das variaveis apropriadamente: res0 = f('nome', dados, 'nome1') mas, novamente, nao posso fazer nada sem saber como de fato sao seus dados... e seguir as recomendacoes do guia de postagem e' sempre a melhor sugestao. b 2012/4/12 Sérgio Henrique almeida da silva ju <sergio.edfisica@gmail.com>
Oi
Dá o mesmo resultado
Quando executo o comando:
dput(dados[1:10,])
Dá um resultado enorme.
Em 11 de abril de 2012 20:05, Benilton Carvalho < beniltoncarvalho@gmail.com> escreveu:
o q vc tentou das recomendacoes do meu ultimo email e quais os resultados?
2012/4/12 Sérgio Henrique almeida da silva ju <sergio.edfisica@gmail.com>
Oi Benilton
Quando 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.
benilton
2012/4/11 Sérgio Henrique almeida da silva ju < sergio.edfisica@gmail.com>
Oi Benilton
Dá o seguinte erro
dados$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 Benilton > > Obrigado 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) >> >> b >> >> >> >> >> 2012/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áveis >>> >>> exemplo >>> >>> Se x1 = 2 eu quero uma substring de x começando da 2ª linha até a >>> 4ª me dando dessa forma o valor A360 >>> Se y1 = 7 eu quero uma substring de y começando da 7ª linha até a >>> 10ª me dando dessa forma o valor A360 >>> >>> e 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.
_______________________________________________ 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.