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

Rodrigo Coster rcoster em gmail.com
Segunda Abril 22 15:51:23 BRT 2013


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


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