[R-br] Duvida String

Benilton Carvalho beniltoncarvalho em gmail.com
Quarta Abril 11 20:30:48 BRT 2012


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 em 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 em 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 em 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 em 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 em 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 em 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 em 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 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
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>
>>>
>>>
>>> _______________________________________________
>>> 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
>
>
>
> _______________________________________________
> 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20120412/daee12f3/attachment.html>


Mais detalhes sobre a lista de discussão R-br