[R-br] Como excluir linhas repetidas sem excluir os missings

Éder Comunello comunello.eder em gmail.com
Quinta Abril 28 14:00:31 BRT 2016


Boa tarde,

Outra ideia, seguindo basicamente a mesma abordagem proposta pelo Augusto
Ribas:

### <code r>
PROCESSO <-
c("5.157.658-4","5.155.855-8","5.153.696-8","5.153.696-8","5.154.220-6",NA,NA,NA,"5.155.401-1","5.155.960-6",NA,"5.157.157-7","5.157.658-4","5.157.658-4")
set.seed(123); dados    <- data.frame(PROCESSO, V1=sample(1:3, 14, rep=T),
V2=sample(1:3, 14, rep=T))
dados

dup1 <- duplicated(dados[,1])   & !is.na(dados[,1]) # Casos com No.
Processo duplicado (exceto casos com NA)
dados[which(dup1),]  # duplicatas
dados[-which(dup1),] # sem duplicidade

dup2 <- duplicated(dados[,2:3]) & !dup1; dados[which(dup2),] # Nos
restantes, casos com duplicidade em outros campos

### filtragem com dois critérios
dup <- (dup1 | dup2); which(dup)
dados[which(dup),]  # duplicatas
dados[-which(dup),] # sem duplicidade
### </code>

​
================================================
Éder Comunello
Agronomist (UEM), MSc in Environ. Sciences (UEM)
DSc in Agricultural Systems Engineering (USP/Esalq)
Brazilian Agricultural Research Corporation (Embrapa)
Dourados, MS, Brazil |<O>|
================================================
GEO, -22.2752, -54.8182, 408m
UTC-04:00 / DST: UTC-03:00




Em 27 de abril de 2016 11:25, Amikobh <amikobh em gmail.com> escreveu:

> Prezado,
>
> Não estou conseguindo fazer de tal forma que conserve as outras variáveis
> e linhas
>
>
> Às 12:35 de 26/04/2016, Augusto Ribas escreveu:
>
> Segue um exemplo, veja se é isso que você quer fazer.
>
>
> PROCESSO<-c("5.157.658-4","5.155.855-8","5.153.696-8","5.153.696-8","5.154.220-6",NA,NA,NA,"5.155.401-1","5.155.960-6",NA,"5.157.157-7","5.157.658-4","5.157.658-4")
> dados<-data.frame(Coluna1=NA,PROCESSO,Coluna3=NA)
>
> ###OS dados devem estar assim, note que eu adicionei uns 3 casos
> duplicadas aos dados
> dados
>
> ###Denovo fazemos um indice, mas vamos querer saber quem não é vaziu, note
> que o ! inverte a saida do is.na
> vaziu<-!is.na(dados$PROCESSO)
>
> ###E encontramos os duplicados com a função duplicated, note o que ela faz
> no exemplo
> duplicated(c(1,1,2,3))
> duplicado<-duplicated(dados$PROCESSO)
>
> ###Agora é so fazer um teste logico, pegar quem não é vaziu e é duplicado
> indice<-which(!(vaziu & duplicado))
>
> ##Agora é so usar o indice para preencher a coluna
> dados_semcopias<-dados[indice,]
>
> dados_semcopias
>
> Em 22 de abril de 2016 19:27, Amikobh <amikobh em gmail.com> escreveu:
>
>> Prezados,
>>
>> Tenho um banco com mais de 8000 linhas e 27 variáveis.
>>
>> Uma das variáveis é a "Processo". Nela, tenho várias linhas em branco e
>> dados repetidos. Como faço para excluir as linhas duplicadas sem excluir as
>> que estão em branco?
>>
>> De tal forma que depois eu tenha um novo banco com estas modificações.
>>
>> Agradecido pela ajuda!
>>
>>
>> PROCESSO
>> 5.155.855-8
>>
>> 5.153.696-8
>> 5.154.220-6
>>
>>
>>
>> 5.154.220-6
>> 5.155.960-6
>>
>> 5.157.157-7
>> 5.154.220-6
>>
>> Elerson
>>
>>
>>
>>
>>
>> _______________________________________________
>> 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 fornea
>> cdigo mnimo reproduzvel.
>
>
>
>
> --
> Grato
> Augusto C. A. Ribas
>
> Site Pessoal: http://recologia.com.br/
> Github: https://github.com/Squiercg
> Lattes: http://lattes.cnpq.br/7355685961127056
>
>
> _______________________________________________
> R-br mailing listR-br em listas.c3sl.ufpr.brhttps://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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160428/d5151311/attachment.html>


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