[R-br] substituir datas em linhas específicas

Fátima Lima Paula fatima.lima.paula em gmail.com
Segunda Abril 22 18:02:34 BRT 2013


Obrigada, Benilton. Vou assistir os vídeos.
Fátima


Em 22 de abril de 2013 17:34, Benilton Carvalho
<beniltoncarvalho em gmail.com>escreveu:

> Perdoem minha intromissao... mas, Fatima, visto o seu historico de
> perguntas, entendo que vc esta' fazendo uma consolidacao do conjunto
> de dados... Sendo assim, nao seria melhor usar uma ferramenta mais
> apropriada para isso e usar o R apenas para a analise?
>
> Google Refine
>
> Parte 1: http://youtu.be/B70J_H_zAWM
> Parte 2: http://youtu.be/cO8NVCs_Ba0
> Parte 3: http://youtu.be/5tsyz3ibYzk
>
> Just my 2c,
>
> b
>
> Em 22 de abril de 2013 16:22, Fátima Lima Paula
> <fatima.lima.paula em gmail.com> escreveu:
> > Eu fiz isso. Mas pensei que pudesse alterar vários campos de uma mesma
> linha
> > de uma vez só. Seria mais prático para mim, pois tenho que alterar numa
> > mesma linha, ora 2 campos, ora 3.
> > De qualquer forma, obrigada pela ajuda.
> >
> >
> >
> > Em 22 de abril de 2013 16:09, Daniel Marcelino <dmarcelino em live.com>
> > escreveu:
> >
> >> Putz, entendi errado então.
> >>
> >> Olha só então:
> >> Rodrigo exemplo:
> >>
> >> # 2 indica a posição da coluna. No meu exemplo vou colocar 2, mas você
> >> precisa trocar para a posição da coluna no seu data frame.
> >>
> >> dados[[345, 2]] <- 20081005
> >>
> >>
> >>
> >>
> >> 2013/4/22 Rodrigo Coster <rcoster em gmail.com>
> >>>
> >>> Daniel,
> >>>
> >>> ela nao quer substituir FATIMALIMA por FATIMA LIMA (ok, até quer, mas
> ela
> >>> ja resolveu esse problema com o comando que ela passou). Ela quer
> alternar a
> >>> data da internação e o motivo da alta de quando o nome é
> FATIMALIMA/FATIMA
> >>> LIMA.
> >>>
> >>>
> >>> 2013/4/22 Daniel Marcelino <dmarcelino em live.com>
> >>>>
> >>>> A solução apresentada pelo Rodrigo é muito mais fácil uma vez que você
> >>>> sabe a localização (a linha da observação) onde aparece "FATIMALIMA".
> No
> >>>> entanto, a minha função foi pensada na possibilidade de você não saber
> >>>> exactamente onde se encontra as observações, por exemplo, num data
> frame
> >>>> muito grande.
> >>>> Como você não passou um exemplo reproduzível, vou mostra aqui da
> >>>> seguinte forma:
> >>>>
> >>>>
> >>>>
> >>>> nome <- rep("FATIMALIMA", 10)
> >>>> numero <- seq(1:10)
> >>>> dados <- data.frame(nome, numero)
> >>>>
> >>>>
> >>>> gsr <-
> >>>> function(file, search, replace) {
> >>>>   if (length(search) != length(replace)) stop("The object search and
> >>>> replace must have the same number of items \n")
> >>>> changing <- as.character(file)
> >>>>
> >>>>   for (i in 1:length(search))
> >>>>   {
> >>>>     cat("Replacing: ", search[i], " with: ", replace[i], "\n")
> >>>> changed <- replace(changing, changing == search[i], replace[i])}
> >>>>
> >>>> cat("\n")
> >>>>   return(changed)
> >>>> }
> >>>>
> >>>>
> >>>> # onde na coluna "nome" for FATIMALIMA a função vai substituir pro
> >>>> FATIMA LIMA.
> >>>> Veja os argumentos; file, search, replace.
> >>>>
> >>>> dados$nome <- gsr(dados$nome, "FATIMALIMA", "FATIMA LIMA" )
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> 2013/4/22 Rodrigo Coster <rcoster em gmail.com>
> >>>>>
> >>>>> Fatima, de maneira genérica, para mudar a j-ésima variavel (coluna)
> da
> >>>>> i-ésima observação (linha), tu pode usar
> >>>>> dados[i, j] <- NOVO VALOR
> >>>>>
> >>>>> O que tu precisa é identificar os i (as linhas), dado que o j (a
> >>>>> variavel que tu quer mudar) já é algo sabido.
> >>>>>
> >>>>>
> >>>>>
> >>>>> 2013/4/22 Fátima Lima Paula <fatima.lima.paula em gmail.com>
> >>>>>>
> >>>>>> Daniel, não entendi.
> >>>>>> Por exemplo, na linha 345 eu quero trocar 20081003 por 20081005.
> >>>>>> Como faço com essa função?
> >>>>>>
> >>>>>>
> >>>>>> Em 22 de abril de 2013 14:38, Daniel Marcelino <dmarcelino em live.com
> >
> >>>>>> escreveu:
> >>>>>>
> >>>>>>> Eu sei que essa função é imensa e que há formas melhores de fazer
> >>>>>>> isso. Uso uma função para fazer isso. Primeiro passo a função no
> prompt:
> >>>>>>>
> >>>>>>> gsr <-
> >>>>>>> function(file, search, replace) {
> >>>>>>>   if (length(search) != length(replace)) stop("The object search
> and
> >>>>>>> replace must have the same number of items \n")
> >>>>>>> changing <- as.character(file)
> >>>>>>>
> >>>>>>>   for (i in 1:length(search))
> >>>>>>>   {
> >>>>>>>     cat("Replacing: ", search[i], " with: ", replace[i], "\n")
> >>>>>>> changed <- replace(changing, changing == search[i], replace[i])}
> >>>>>>>
> >>>>>>> cat("\n")
> >>>>>>>   return(changed)
> >>>>>>> }
> >>>>>>>
> >>>>>>>
> >>>>>>> Daí é só passar o que você quiser:
> >>>>>>>
> >>>>>>> dados$coluna <- gsr(dados$coluna, "FATIMALIMA", "FATIMA LIMA" )
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> 2013/4/22 Fátima Lima Paula <fatima.lima.paula em gmail.com>
> >>>>>>>>
> >>>>>>>> Pessoal, quando fui substituir uns nomes no meu banco, usei
> >>>>>>>> levels(banco$nome) <- gsub("FATIMALIMA", "FATIMA LIMA",
> >>>>>>>> levels(banco$nome))
> >>>>>>>> Agora o problema é outro, tenho uma linha com nome, data de
> >>>>>>>> nascimento, data de internação, motivo da alta etc.
> >>>>>>>> Em uma específica linha, quero trocar o motivo da alta e a data da
> >>>>>>>> internação. Não posso usar o comando acima pois existe um monte
> de outros
> >>>>>>>> motivos de saida 21, por exemplo, e eu só quero substituir para a
> FATIMA
> >>>>>>>> LIMA.
> >>>>>>>> Alguém, por favor, pode me ajudar?
> >>>>>>>> Obrigada
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> 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.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>> \begin{signature}
> >>>>>>> Daniel Marcelino
> >>>>>>> ☁ dm.silva em umontreal.ca
> >>>>>>> ☎ (514) 343 6111 #3799
> >>>>>>> Skype: d.marcelino
> >>>>>>> ✎ 3200 Jean Brillant,  Office C5071
> >>>>>>> Montreal, QC; H3T 1N8
> >>>>>>> Canada
> >>>>>>> \end{signature}
> >>>>>>>
> >>>>>>> "Small steps toward a much better world"
> >>>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> 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.
> >>>>>
> >>>>>
> >>>>>
> >>>>> _______________________________________________
> >>>>> 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.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> \begin{signature}
> >>>> Daniel Marcelino
> >>>> ☁ dm.silva em umontreal.ca
> >>>> ☎ (514) 343 6111 #3799
> >>>> Skype: d.marcelino
> >>>> ✎ 3200 Jean Brillant,  Office C5071
> >>>> Montreal, QC; H3T 1N8
> >>>> Canada
> >>>> \end{signature}
> >>>>
> >>>> "Small steps toward a much better world"
> >>>>
> >>>> _______________________________________________
> >>>> 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.
> >>
> >>
> >>
> >>
> >> --
> >> \begin{signature}
> >> Daniel Marcelino
> >> ☁ dm.silva em umontreal.ca
> >> ☎ (514) 343 6111 #3799
> >> Skype: d.marcelino
> >> ✎ 3200 Jean Brillant,  Office C5071
> >> Montreal, QC; H3T 1N8
> >> Canada
> >> \end{signature}
> >>
> >> "Small steps toward a much better world"
> >>
> >> _______________________________________________
> >> 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.
> _______________________________________________
> 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/20130422/e7db3ebd/attachment.html>


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