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

Fátima Lima Paula fatima.lima.paula em gmail.com
Segunda Abril 22 16:22:55 BRT 2013


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


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