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

Daniel Marcelino dmarcelino em live.com
Segunda Abril 22 16:09:43 BRT 2013


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


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