
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@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@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@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@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@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.