[R-br] Duvida String
Sérgio Henrique almeida da silva ju
sergio.edfisica em gmail.com
Quarta Abril 11 14:21:59 BRT 2012
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 em 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 em 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 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
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120411/d102cdbb/attachment.html>
Mais detalhes sobre a lista de discussão R-br