As variáveis x e y eu criei atráves da ajuda do Daniel no outro tópico
dados$x=sapply(gregexpr("A360",linhaa),"[",i=1)
dados$y=sapply(gregexpr("A360",linhab),"[",i=1)
Através desse resultado eu quero criar uma variável que me dê os valores A360 das variáveis linhaa e linhab, aqui eu busco esse valor, mas no meu trabalho original procuro diversos valores, isso é claro se o resultado de x ou y for diferente de -1 ou NA.
Exemplo:
Abaixo, no meu trabalho original, busco a posição desses diversos códigos e depois desejo estraí-los dessas variáveis colocando em uma outra variável Z, por exemplo
Deve ter um comando que eu extrai direto esses valores, porém eu também preciso dos resultados da sintaxe abaixo
dados$x1=sapply(gregexpr("A39",linhaa),"[",i=1)
dados$x2=sapply(gregexpr("A39",linhab),"[",i=1)
dados$x3=sapply(gregexpr("A39",linhac),"[",i=1)
dados$x4=sapply(gregexpr("A39",linhad),"[",i=1)
dados$x5=sapply(gregexpr("A39",linhaii),"[",i=1)
dados$x6=sapply(gregexpr("G00",linhaa),"[",i=1)
dados$x7=sapply(gregexpr("G00",linhab),"[",i=1)
dados$x8=sapply(gregexpr("G00",linhac),"[",i=1)
dados$x9=sapply(gregexpr("G00",linhad),"[",i=1)
dados$x10=sapply(gregexpr("G00",linhaii),"[",i=1)
dados$x11=sapply(gregexpr("A170",linhaa),"[",i=1)
dados$x12=sapply(gregexpr("A170",linhab),"[",i=1)
dados$x13=sapply(gregexpr("A170",linhac),"[",i=1)
dados$x14=sapply(gregexpr("A170",linhad),"[",i=1)
dados$x15=sapply(gregexpr("A170",linhaii),"[",i=1)
dados$x16=sapply(gregexpr("G02",linhaa),"[",i=1)
dados$x17=sapply(gregexpr("G02",linhab),"[",i=1)
dados$x18=sapply(gregexpr("G02",linhac),"[",i=1)
dados$x19=sapply(gregexpr("G02",linhad),"[",i=1)
dados$x20=sapply(gregexpr("G02",linhaii),"[",i=1)
dados$x21=sapply(gregexpr("G03",linhaa),"[",i=1)
dados$x22=sapply(gregexpr("G03",linhab),"[",i=1)
dados$x23=sapply(gregexpr("G03",linhac),"[",i=1)
dados$x24=sapply(gregexpr("G03",linhad),"[",i=1)
dados$x25=sapply(gregexpr("G03",linhaii),"[",i=1)
dados$x26=sapply(gregexpr("A87",linhaa),"[",i=1)
dados$x27=sapply(gregexpr("A87",linhab),"[",i=1)
dados$x28=sapply(gregexpr("A87",linhac),"[",i=1)
dados$x29=sapply(gregexpr("A87",linhad),"[",i=1)
dados$x30=sapply(gregexpr("A87",linhaii),"[",i=1)
dados$x31=sapply(gregexpr("B261",linhaa),"[",i=1)
dados$x32=sapply(gregexpr("B261",linhab),"[",i=1)
dados$x33=sapply(gregexpr("B261",linhac),"[",i=1)
dados$x34=sapply(gregexpr("B261",linhad),"[",i=1)
dados$x35=sapply(gregexpr("B261",linhaii),"[",i=1)
dados$x36=sapply(gregexpr("B051",linhaa),"[",i=1)
dados$x37=sapply(gregexpr("B051",linhab),"[",i=1)
dados$x38=sapply(gregexpr("B051",linhac),"[",i=1)
dados$x39=sapply(gregexpr("B051",linhad),"[",i=1)
dados$x40=sapply(gregexpr("B051",linhaii),"[",i=1)
dados$x41=sapply(gregexpr("B060",linhaa),"[",i=1)
dados$x42=sapply(gregexpr("B060",linhab),"[",i=1)
dados$x43=sapply(gregexpr("B060",linhac),"[",i=1)
dados$x44=sapply(gregexpr("B060",linhad),"[",i=1)
dados$x45=sapply(gregexpr("B060",linhaii),"[",i=1)
dados$x46=sapply(gregexpr("B010",linhaa),"[",i=1)
dados$x47=sapply(gregexpr("B010",linhab),"[",i=1)
dados$x48=sapply(gregexpr("B010",linhac),"[",i=1)
dados$x49=sapply(gregexpr("B010",linhad),"[",i=1)
dados$x50=sapply(gregexpr("B010",linhaii),"[",i=1)
dados$x51=sapply(gregexpr("B003",linhaa),"[",i=1)
dados$x52=sapply(gregexpr("B003",linhab),"[",i=1)
dados$x53=sapply(gregexpr("B003",linhac),"[",i=1)
dados$x54=sapply(gregexpr("B003",linhad),"[",i=1)
dados$x55=sapply(gregexpr("B003",linhaii),"[",i=1)
dados$x56=sapply(gregexpr("B021",linhaa),"[",i=1)
dados$x57=sapply(gregexpr("B021",linhab),"[",i=1)
dados$x58=sapply(gregexpr("B021",linhac),"[",i=1)
dados$x59=sapply(gregexpr("B021",linhad),"[",i=1)
dados$x60=sapply(gregexpr("B021",linhaii),"[",i=1)
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
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.
_______________________________________________
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.