Colocar identificar único em registros repetidos

Olá pessoal, Tenho um banco com registros repetidos por linha e gostaria de colocar o mesmo identificador (contador) para os registros que são repetidos baseado em alguns atributos. Por exemplo, se o existirem 4 registros com o mesmo nome, nome da mãe e data de nascimento, o identificador será o mesmo. Segue um exemplo do meu banco de dados: Registro Nome Nome Mãe Data Nascimento 1 João Maria 1976-09-08 2 Manuel Selma 1988-03-10 3 João Maria 1976-09-08 4 João Maria 1976-09-08 5 Ricardo Sonia 1990-05-12 6 Marcelo Marta 1987-08-06 7 Ricardo Sonia 1990-05-12 8 João Maria 1976-09-08 9 Ricardo Sonia 1990-05-12 10 Marcelo Marta 1987-08-06 Gostaria obter esse banco com o identificador ID: Registro ID Nome Nome Mãe Data Nascimento 1 1 João Maria 1976-09-08 2 2 João Selma 1988-03-10 3 1 João Maria 1976-09-08 4 1 João Maria 1976-09-08 5 3 Ricardo Sonia 1990-05-12 6 4 Marcelo Marta 1987-08-06 7 3 Ricardo Sonia 1990-05-12 8 1 João Maria 1976-09-08 9 3 Ricardo Sonia 1990-05-12 10 4 Marcelo Marta 1987-08-06 Muito obrigado a todos, -- Wagner S. Tassinari Departamento de Matemática Universidade Federal Rural do Rio de Janeiro. BR-465, Km 7 - Seropedica, RJ - Brasil CEP: 23890-000 Skype: wagner.tassinari wtassinari@gmail.com tassinari@ufrrj.br ------------------------------------------------------- "Statistical thinking will one day be as necessary for efficient citizenship as the ability to read and write." (H.G.Wellis)

Wagner, Uma solução é criar um novo data.frame() só com as variáveis que identificam os registros, tirar os repetidos com o unique(), acrescentar o ID e juntar com merge(): dados <- read.table(text='Registro;Nome ;Nome Mãe ;Data Nascimento 1;João;Maria;1976-09-08 2;Manuel;Selma;1988-03-10 3;João;Maria;1976-09-08 4;João;Maria;1976-09-08 5;Ricardo;Sonia;1990-05-12 6;Marcelo;Marta;1987-08-06 7;Ricardo;Sonia;1990-05-12 8;João;Maria;1976-09-08 9;Ricardo;Sonia;1990-05-12 10;Marcelo;Marta;1987-08-06', sep = ';', header = TRUE) dadosApoio <- unique(subset(dados, select = c(Nome, Nome.Mãe, Data.Nascimento))) dadosApoio$ID <- 1:nrow(dadosApoio) dados <- merge(dados, dadosApoio) dados 2016-02-28 11:23 GMT-03:00 Wagner Tassinari <wtassinari@gmail.com>:
Olá pessoal,
Tenho um banco com registros repetidos por linha e gostaria de colocar o mesmo identificador (contador) para os registros que são repetidos baseado em alguns atributos. Por exemplo, se o existirem 4 registros com o mesmo nome, nome da mãe e data de nascimento, o identificador será o mesmo.
Segue um exemplo do meu banco de dados:
Registro Nome Nome Mãe Data Nascimento 1 João Maria 1976-09-08 2 Manuel Selma 1988-03-10 3 João Maria 1976-09-08 4 João Maria 1976-09-08 5 Ricardo Sonia 1990-05-12 6 Marcelo Marta 1987-08-06 7 Ricardo Sonia 1990-05-12 8 João Maria 1976-09-08 9 Ricardo Sonia 1990-05-12 10 Marcelo Marta 1987-08-06 Gostaria obter esse banco com o identificador ID:
Registro ID Nome Nome Mãe Data Nascimento 1 1 João Maria 1976-09-08 2 2 João Selma 1988-03-10 3 1 João Maria 1976-09-08 4 1 João Maria 1976-09-08 5 3 Ricardo Sonia 1990-05-12 6 4 Marcelo Marta 1987-08-06 7 3 Ricardo Sonia 1990-05-12 8 1 João Maria 1976-09-08 9 3 Ricardo Sonia 1990-05-12 10 4 Marcelo Marta 1987-08-06
Muito obrigado a todos, -- Wagner S. Tassinari Departamento de Matemática Universidade Federal Rural do Rio de Janeiro. BR-465, Km 7 - Seropedica, RJ - Brasil CEP: 23890-000 Skype: wagner.tassinari wtassinari@gmail.com tassinari@ufrrj.br ------------------------------------------------------- "Statistical thinking will one day be as necessary for efficient citizenship as the ability to read and write." (H.G.Wellis)
_______________________________________________ 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.

Outra opção seria usar o factor: dados$ID <- as.integer(with(dados, factor(paste(Nome, Nome.Mãe, Data.Nascimento)))) 2016-02-28 12:43 GMT-03:00 Rodrigo Coster <rcoster@gmail.com>:
Wagner,
Uma solução é criar um novo data.frame() só com as variáveis que identificam os registros, tirar os repetidos com o unique(), acrescentar o ID e juntar com merge():
dados <- read.table(text='Registro;Nome ;Nome Mãe ;Data Nascimento 1;João;Maria;1976-09-08 2;Manuel;Selma;1988-03-10 3;João;Maria;1976-09-08 4;João;Maria;1976-09-08 5;Ricardo;Sonia;1990-05-12 6;Marcelo;Marta;1987-08-06 7;Ricardo;Sonia;1990-05-12 8;João;Maria;1976-09-08 9;Ricardo;Sonia;1990-05-12 10;Marcelo;Marta;1987-08-06', sep = ';', header = TRUE)
dadosApoio <- unique(subset(dados, select = c(Nome, Nome.Mãe, Data.Nascimento))) dadosApoio$ID <- 1:nrow(dadosApoio)
dados <- merge(dados, dadosApoio) dados
2016-02-28 11:23 GMT-03:00 Wagner Tassinari <wtassinari@gmail.com>:
Olá pessoal,
Tenho um banco com registros repetidos por linha e gostaria de colocar o mesmo identificador (contador) para os registros que são repetidos baseado em alguns atributos. Por exemplo, se o existirem 4 registros com o mesmo nome, nome da mãe e data de nascimento, o identificador será o mesmo.
Segue um exemplo do meu banco de dados:
Registro Nome Nome Mãe Data Nascimento 1 João Maria 1976-09-08 2 Manuel Selma 1988-03-10 3 João Maria 1976-09-08 4 João Maria 1976-09-08 5 Ricardo Sonia 1990-05-12 6 Marcelo Marta 1987-08-06 7 Ricardo Sonia 1990-05-12 8 João Maria 1976-09-08 9 Ricardo Sonia 1990-05-12 10 Marcelo Marta 1987-08-06 Gostaria obter esse banco com o identificador ID:
Registro ID Nome Nome Mãe Data Nascimento 1 1 João Maria 1976-09-08 2 2 João Selma 1988-03-10 3 1 João Maria 1976-09-08 4 1 João Maria 1976-09-08 5 3 Ricardo Sonia 1990-05-12 6 4 Marcelo Marta 1987-08-06 7 3 Ricardo Sonia 1990-05-12 8 1 João Maria 1976-09-08 9 3 Ricardo Sonia 1990-05-12 10 4 Marcelo Marta 1987-08-06
Muito obrigado a todos, -- Wagner S. Tassinari Departamento de Matemática Universidade Federal Rural do Rio de Janeiro. BR-465, Km 7 - Seropedica, RJ - Brasil CEP: 23890-000 Skype: wagner.tassinari wtassinari@gmail.com tassinari@ufrrj.br ------------------------------------------------------- "Statistical thinking will one day be as necessary for efficient citizenship as the ability to read and write." (H.G.Wellis)
_______________________________________________ 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.
_______________________________________________ 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.
-- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O
participantes (3)
-
Henrique Dallazuanna
-
Rodrigo Coster
-
Wagner Tassinari