[R-br] substituir datas em linhas específicas
Benilton Carvalho
beniltoncarvalho em gmail.com
Segunda Abril 22 17:34:02 BRT 2013
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.
Mais detalhes sobre a lista de discussão R-br