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 <[email protected]> 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 <[email protected]> > 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 <[email protected]> >>> >>> 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 <[email protected]> >>>> >>>> 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 <[email protected]> >>>>> >>>>> 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 <[email protected]> >>>>>> >>>>>> 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 <[email protected]> >>>>>> 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 <[email protected]> >>>>>>>> >>>>>>>> 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 >>>>>>>> [email protected] >>>>>>>> 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 >>>>>>> ☁ [email protected] >>>>>>> ☎ (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 >>>>>>> [email protected] >>>>>>> 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 >>>>>> [email protected] >>>>>> 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 >>>>> [email protected] >>>>> 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 >>>> ☁ [email protected] >>>> ☎ (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 >>>> [email protected] >>>> 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 >>> [email protected] >>> 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 >> ☁ [email protected] >> ☎ (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 >> [email protected] >> 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 > [email protected] > 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 [email protected] 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.
