Dúvida ao juntar duas bases de dados

Bom dia, pessoal! Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados) [1] 2056 11
dim(dados1) [1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1". Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso? Abraços e ótima semana!

Veja a função merge() Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com> escreveu:
Bom dia, pessoal!
Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados) [1] 2056 11
dim(dados1) [1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1".
Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso?
Abraços e ótima semana!
_______________________________________________ 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.

Victor, tente usar o argumento (all.x = TRUE) dentro do merge. Dessa forma você estará fazendo um Left Join. Ele vai retornar a tabela dados inteira, com todos os seus registros e apenas os registros de dados1 que tenham um id pertencente a coluna id de dados. Caso não encontre o id em dados, retorna NA em dados1. merge(x = dados, y = dados1, by = 'Id', all.x = TRUE) Em 16 de maio de 2015 12:00, Fernando Antonio de souza < nandodesouza@gmail.com> escreveu:
Veja a função merge() Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com> escreveu:
Bom dia, pessoal!
Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados) [1] 2056 11
dim(dados1) [1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1".
Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso?
Abraços e ótima semana!
_______________________________________________ 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.

Oi Diego, eu tentei isso, e ele simplesmente aumenta o número de linhas. Sobe para mais de 20 mil linhas na hora do merge Em 16 de maio de 2015 13:32, Diego Miro <d.miro1089@gmail.com> escreveu:
Victor, tente usar o argumento (all.x = TRUE) dentro do merge. Dessa forma você estará fazendo um Left Join.
Ele vai retornar a tabela dados inteira, com todos os seus registros e apenas os registros de dados1 que tenham um id pertencente a coluna id de dados. Caso não encontre o id em dados, retorna NA em dados1.
merge(x = dados, y = dados1, by = 'Id', all.x = TRUE)
Em 16 de maio de 2015 12:00, Fernando Antonio de souza < nandodesouza@gmail.com> escreveu:
Veja a função merge() Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com> escreveu:
Bom dia, pessoal!
Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados) [1] 2056 11
dim(dados1) [1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1".
Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso?
Abraços e ótima semana!
_______________________________________________ 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.
_______________________________________________ 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.

Olá Victor, Veja se os valores no id nas duas está no mesmo formato, talvez um maiúsculo ou minúsculo diferente pode fazer com que ele não case as informações direito. Em sábado, 16 de maio de 2015, Victor Eduardo <victorduca08@gmail.com> escreveu:
Oi Diego, eu tentei isso, e ele simplesmente aumenta o número de linhas. Sobe para mais de 20 mil linhas na hora do merge
Em 16 de maio de 2015 13:32, Diego Miro <d.miro1089@gmail.com <javascript:_e(%7B%7D,'cvml','d.miro1089@gmail.com');>> escreveu:
Victor, tente usar o argumento (all.x = TRUE) dentro do merge. Dessa forma você estará fazendo um Left Join.
Ele vai retornar a tabela dados inteira, com todos os seus registros e apenas os registros de dados1 que tenham um id pertencente a coluna id de dados. Caso não encontre o id em dados, retorna NA em dados1.
merge(x = dados, y = dados1, by = 'Id', all.x = TRUE)
Em 16 de maio de 2015 12:00, Fernando Antonio de souza < nandodesouza@gmail.com <javascript:_e(%7B%7D,'cvml','nandodesouza@gmail.com');>> escreveu:
Veja a função merge() Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com <javascript:_e(%7B%7D,'cvml','victorduca08@gmail.com');>> escreveu:
Bom dia, pessoal!
Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados) [1] 2056 11
dim(dados1) [1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1".
Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso?
Abraços e ótima semana!
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <javascript:_e(%7B%7D,'cvml','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 <javascript:_e(%7B%7D,'cvml','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 <javascript:_e(%7B%7D,'cvml','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.
-- *Paulo Dick* Estatístico Mestrando em Epidemiologia em Saúde Pública Tel.: (55 21) 99591-2716

Victor, Manda seu código que fica mais fácil da gente ver o que pode ter dado errado.
Em 16/05/2015, à(s) 14:38, Paulo Dick <paulopcdick@gmail.com> escreveu:
Olá Victor, Veja se os valores no id nas duas está no mesmo formato, talvez um maiúsculo ou minúsculo diferente pode fazer com que ele não case as informações direito.
Em sábado, 16 de maio de 2015, Victor Eduardo <victorduca08@gmail.com <mailto:victorduca08@gmail.com>> escreveu: Oi Diego, eu tentei isso, e ele simplesmente aumenta o número de linhas. Sobe para mais de 20 mil linhas na hora do merge
Em 16 de maio de 2015 13:32, Diego Miro <d.miro1089@gmail.com <javascript:_e(%7B%7D,'cvml','d.miro1089@gmail.com');>> escreveu: Victor, tente usar o argumento (all.x = TRUE) dentro do merge. Dessa forma você estará fazendo um Left Join.
Ele vai retornar a tabela dados inteira, com todos os seus registros e apenas os registros de dados1 que tenham um id pertencente a coluna id de dados. Caso não encontre o id em dados, retorna NA em dados1.
merge(x = dados, y = dados1, by = 'Id', all.x = TRUE)
Em 16 de maio de 2015 12:00, Fernando Antonio de souza <nandodesouza@gmail.com <javascript:_e(%7B%7D,'cvml','nandodesouza@gmail.com');>> escreveu: Veja a função merge()
Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com <javascript:_e(%7B%7D,'cvml','victorduca08@gmail.com');>> escreveu: Bom dia, pessoal!
Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados) [1] 2056 11
dim(dados1) [1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1".
Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso?
Abraços e ótima semana!
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <javascript:_e(%7B%7D,'cvml','R-br@listas.c3sl.ufpr.br');> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-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 <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 <javascript:_e(%7B%7D,'cvml','R-br@listas.c3sl.ufpr.br');> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-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 <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 <javascript:_e(%7B%7D,'cvml','R-br@listas.c3sl.ufpr.br');> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-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 <http://www.leg.ufpr.br/r-br-guia>) e forneça código mínimo reproduzível.
--
Paulo Dick Estatístico Mestrando em Epidemiologia em Saúde Pública Tel.: (55 21) 99591-2716
_______________________________________________ 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.

Oi pessoal, consegui resolver aqui. O Diego me ajudou. O problema que estava enfrentando é que existia a repetição de IDs na minha base de dados. Por exemplo, o ID 2 se repetia 15 vezes. A solução foi criar um novo id que tenha a informação do antigo id e a identificação da unidade amostral dentro daquele id. Feito isso, foi utilizado o merge. Basicamente foi feito o seguinte, parte da minha base de dados era desse jeito:
head(dados) id var1 var2 var3 var4 var5 var6 var7 var8 var9 1 1 RJ 99 1 27.66667 2 15/12/2004 1 15/03/2005 358 2 2 RJ 1 1 35.32500 1 13/07/2001 1 27/02/2002 645 3 2 RJ 1 1 35.32500 1 13/07/2001 1 06/11/2007 73 4 2 RJ 1 1 35.32500 1 13/07/2001 1 03/12/2007 162 5 2 RJ 1 1 35.32500 1 13/07/2001 1 02/07/2002 546 6 2 RJ 1 1 35.32500 1 13/07/2001 1 06/12/2002 542
head(dados1) id var10 1 1 3.031408 2 2 4.710963 3 2 4.262451 4 2 5.334454 5 2 4.718502 6 2 4.413300
dim(dados) [1] 2074 10
dim(dados1) [1] 1782 2
O que queria é juntar essas duas bases, só que são de dimensões diferentes. O grande problema seria na repetição de IDs, pois somente o merge não ajudaria. Então a solução do Diego foi fazer o seguinte: *n.dados <- numeric(dim(dados)[1])* *n.dados[1] <- 1* *for(i in 2:dim(dados)[1]) {* * n.dados[i] <- ifelse(test = dados[(i - 1), 'id'] == dados[i, 'id'], yes = n.dados[i - 1] + 1, no = 1)* *}* *n.dados1 <- numeric(dim(dados1)[1])* *n.dados1[1] <- 1* *for(i in 2:dim(dados1)[1]) {* * n.dados1[i] <- ifelse(test = dados1[(i - 1), 'id'] == dados1[i, 'id'], yes = n.dados1[i - 1] + 1, no = 1)* *}* *ID <- paste0(formatC(dados[, 'id'], width = 4, flag = '0'), formatC(n.dados, width = 2, flag = '0'))* *DADOS <- cbind(ID, dados)* *ID <- paste0(formatC(dados1[, 'id'], width = 4, flag = '0'), formatC(n.dados1, width = 2, flag = '0'))* *DADOS1 <- cbind(ID, dados1)* Rodando o script acima, a base de dados ficou da seguinte forma:
head(DADOS) ID id var1 var2 var3 var4 var5 var6 var7 var8 var9 1 000101 1 RJ 99 1 27.66667 2 15/12/2004 1 15/03/2005 358 2 000201 2 RJ 1 1 35.32500 1 13/07/2001 1 27/02/2002 645 3 000202 2 RJ 1 1 35.32500 1 13/07/2001 1 06/11/2007 73 4 000203 2 RJ 1 1 35.32500 1 13/07/2001 1 03/12/2007 162 5 000204 2 RJ 1 1 35.32500 1 13/07/2001 1 02/07/2002 546 6 000205 2 RJ 1 1 35.32500 1 13/07/2001 1 06/12/2002 542
head(DADOS1) ID id var10 1 000101 1 3.031408 2 000201 2 4.710963 3 000202 2 4.262451 4 000203 2 5.334454 5 000204 2 4.718502 6 000205 2 4.413300
Utilizando o merge: *k<-merge(x = DADOS, y = DADOS1, by = 'ID', all.y = TRUE)* head(k) ID id.x var1 var2 var3 var4 var5 var6 var7 var8 var9 id.y var10 1 000101 1 RJ 99 1 27.66667 2 15/12/2004 1 15/03/2005 358 1 3.031408 2 000201 2 RJ 1 1 35.32500 1 13/07/2001 1 27/02/2002 645 2 4.710963 3 000202 2 RJ 1 1 35.32500 1 13/07/2001 1 06/11/2007 73 2 4.262451 4 000203 2 RJ 1 1 35.32500 1 13/07/2001 1 03/12/2007 162 2 5.334454 5 000204 2 RJ 1 1 35.32500 1 13/07/2001 1 02/07/2002 546 2 4.718502 6 000205 2 RJ 1 1 35.32500 1 13/07/2001 1 06/12/2002 542 2 4.413300 Agradeço à todos pela ajuda e atenção. Grande abraço e ótima semana, Victor Eduardo Em 16 de maio de 2015 14:53, Paulo Abreu <abreups@me.com> escreveu:
Victor,
Manda seu código que fica mais fácil da gente ver o que pode ter dado errado.
Em 16/05/2015, à(s) 14:38, Paulo Dick <paulopcdick@gmail.com> escreveu:
Olá Victor, Veja se os valores no id nas duas está no mesmo formato, talvez um maiúsculo ou minúsculo diferente pode fazer com que ele não case as informações direito.
Em sábado, 16 de maio de 2015, Victor Eduardo <victorduca08@gmail.com> escreveu:
Oi Diego, eu tentei isso, e ele simplesmente aumenta o número de linhas. Sobe para mais de 20 mil linhas na hora do merge
Em 16 de maio de 2015 13:32, Diego Miro <d.miro1089@gmail.com> escreveu:
Victor, tente usar o argumento (all.x = TRUE) dentro do merge. Dessa forma você estará fazendo um Left Join.
Ele vai retornar a tabela dados inteira, com todos os seus registros e apenas os registros de dados1 que tenham um id pertencente a coluna id de dados. Caso não encontre o id em dados, retorna NA em dados1.
merge(x = dados, y = dados1, by = 'Id', all.x = TRUE)
Em 16 de maio de 2015 12:00, Fernando Antonio de souza < nandodesouza@gmail.com> escreveu:
Veja a função merge() Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com> escreveu:
Bom dia, pessoal!
Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados) [1] 2056 11
dim(dados1) [1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1".
Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso?
Abraços e ótima semana!
_______________________________________________ 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.
_______________________________________________ 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.
--
*Paulo Dick* Estatístico Mestrando em Epidemiologia em Saúde Pública Tel.: (55 21) 99591-2716
_______________________________________________ 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.

Tem o arquivo para rodar? Oi pessoal, consegui resolver aqui. O Diego me ajudou. O problema que estava enfrentando é que existia a repetição de IDs na minha base de dados. Por exemplo, o ID 2 se repetia 15 vezes. A solução foi criar um novo id que tenha a informação do antigo id e a identificação da unidade amostral dentro daquele id. Feito isso, foi utilizado o merge. Basicamente foi feito o seguinte, parte da minha base de dados era desse jeito:
head(dados)
id var1 var2 var3 var4 var5 var6 var7 var8 var9 1 1 RJ 99 1 27.66667 2 15/12/2004 1 15/03/2005 358 2 2 RJ 1 1 35.32500 1 13/07/2001 1 27/02/2002 645 3 2 RJ 1 1 35.32500 1 13/07/2001 1 06/11/2007 73 4 2 RJ 1 1 35.32500 1 13/07/2001 1 03/12/2007 162 5 2 RJ 1 1 35.32500 1 13/07/2001 1 02/07/2002 546 6 2 RJ 1 1 35.32500 1 13/07/2001 1 06/12/2002 542
head(dados1)
id var10 1 1 3.031408 2 2 4.710963 3 2 4.262451 4 2 5.334454 5 2 4.718502 6 2 4.413300
dim(dados)
[1] 2074 10
dim(dados1)
[1] 1782 2 O que queria é juntar essas duas bases, só que são de dimensões diferentes. O grande problema seria na repetição de IDs, pois somente o merge não ajudaria. Então a solução do Diego foi fazer o seguinte: n.dados <- numeric(dim(dados)[1]) n.dados[1] <- 1 for(i in 2:dim(dados)[1]) { n.dados[i] <- ifelse(test = dados[(i - 1), 'id'] == dados[i, 'id'], yes = n.dados[i - 1] + 1, no = 1) } n.dados1 <- numeric(dim(dados1)[1]) n.dados1[1] <- 1 for(i in 2:dim(dados1)[1]) { n.dados1[i] <- ifelse(test = dados1[(i - 1), 'id'] == dados1[i, 'id'], yes = n.dados1[i - 1] + 1, no = 1) } ID <- paste0(formatC(dados[, 'id'], width = 4, flag = '0'), formatC(n.dados, width = 2, flag = '0')) DADOS <- cbind(ID, dados) ID <- paste0(formatC(dados1[, 'id'], width = 4, flag = '0'), formatC(n.dados1, width = 2, flag = '0')) DADOS1 <- cbind(ID, dados1) Rodando o script acima, a base de dados ficou da seguinte forma:
head(DADOS)
ID id var1 var2 var3 var4 var5 var6 var7 var8 var9 1 000101 1 RJ 99 1 27.66667 2 15/12/2004 1 15/03/2005 358 2 000201 2 RJ 1 1 35.32500 1 13/07/2001 1 27/02/2002 645 3 000202 2 RJ 1 1 35.32500 1 13/07/2001 1 06/11/2007 73 4 000203 2 RJ 1 1 35.32500 1 13/07/2001 1 03/12/2007 162 5 000204 2 RJ 1 1 35.32500 1 13/07/2001 1 02/07/2002 546 6 000205 2 RJ 1 1 35.32500 1 13/07/2001 1 06/12/2002 542
head(DADOS1)
ID id var10 1 000101 1 3.031408 2 000201 2 4.710963 3 000202 2 4.262451 4 000203 2 5.334454 5 000204 2 4.718502 6 000205 2 4.413300 Utilizando o merge: k<-merge(x = DADOS, y = DADOS1, by = 'ID', all.y = TRUE) head(k) ID id.x var1 var2 var3 var4 var5 var6 var7 var8 var9 id.y var10 1 000101 1 RJ 99 1 27.66667 2 15/12/2004 1 15/03/2005 358 1 3.031408 2 000201 2 RJ 1 1 35.32500 1 13/07/2001 1 27/02/2002 645 2 4.710963 3 000202 2 RJ 1 1 35.32500 1 13/07/2001 1 06/11/2007 73 2 4.262451 4 000203 2 RJ 1 1 35.32500 1 13/07/2001 1 03/12/2007 162 2 5.334454 5 000204 2 RJ 1 1 35.32500 1 13/07/2001 1 02/07/2002 546 2 4.718502 6 000205 2 RJ 1 1 35.32500 1 13/07/2001 1 06/12/2002 542 2 4.413300 Agradeço à todos pela ajuda e atenção. Grande abraço e ótima semana, Victor Eduardo Em 16 de maio de 2015 14:53, Paulo Abreu <abreups@me.com> escreveu: Victor, Manda seu código que fica mais fácil da gente ver o que pode ter dado errado. Em 16/05/2015, à(s) 14:38, Paulo Dick <paulopcdick@gmail.com> escreveu: Olá Victor, Veja se os valores no id nas duas está no mesmo formato, talvez um maiúsculo ou minúsculo diferente pode fazer com que ele não case as informações direito. Em sábado, 16 de maio de 2015, Victor Eduardo <victorduca08@gmail.com> escreveu: Oi Diego, eu tentei isso, e ele simplesmente aumenta o número de linhas. Sobe para mais de 20 mil linhas na hora do merge Em 16 de maio de 2015 13:32, Diego Miro <d.miro1089@gmail.com> escreveu: Victor, tente usar o argumento (all.x = TRUE) dentro do merge. Dessa forma você estará fazendo um Left Join. Ele vai retornar a tabela dados inteira, com todos os seus registros e apenas os registros de dados1 que tenham um id pertencente a coluna id de dados. Caso não encontre o id em dados, retorna NA em dados1. merge(x = dados, y = dados1, by = 'Id', all.x = TRUE) Em 16 de maio de 2015 12:00, Fernando Antonio de souza <nandodesouza@gmail.com> escreveu: Veja a função merge() Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com> escreveu: Bom dia, pessoal! Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados)
[1] 2056 11
dim(dados1)
[1] 1782 2 Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1". Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso? Abraços e ótima semana! _______________________________________________ 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. _______________________________________________ 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. -- Paulo Dick Estatístico Mestrando em Epidemiologia em Saúde Pública Tel.: (55 21) 99591-2716 _______________________________________________ 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. --- Este email foi escaneado pelo Avast antivírus. http://www.avast.com

Diego, imaginando que é da forma abaixo seus bancos, eu faria o seguinte dados2<-data.frame(ident=dados$id, varquero=var$dados)dados3<-data.frame(ident=dados$id, varquero=var$dados1) var$dados=var$dados1 dfq<-rbind(dados2,dados3) Veja que seu banco terá a soma da dimensão dos dois bancos. [ ]'s. Edson Lira Estatístico Manaus-Amazonas Em Sábado, 16 de Maio de 2015 13:05, Victor Eduardo <victorduca08@gmail.com> escreveu: Oi Diego, eu tentei isso, e ele simplesmente aumenta o número de linhas. Sobe para mais de 20 mil linhas na hora do merge Em 16 de maio de 2015 13:32, Diego Miro <d.miro1089@gmail.com> escreveu: Victor, tente usar o argumento (all.x = TRUE) dentro do merge. Dessa forma você estará fazendo um Left Join. Ele vai retornar a tabela dados inteira, com todos os seus registros e apenas os registros de dados1 que tenham um id pertencente a coluna id de dados. Caso não encontre o id em dados, retorna NA em dados1. merge(x = dados, y = dados1, by = 'Id', all.x = TRUE) Em 16 de maio de 2015 12:00, Fernando Antonio de souza <nandodesouza@gmail.com> escreveu: Veja a função merge()Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com> escreveu: Bom dia, pessoal! Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados)[1] 2056 11
dim(dados1)[1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1". Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso? Abraços e ótima semana! _______________________________________________ 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. _______________________________________________ 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.

Pesquise sobre a funcao *rbind.fill(),* acredito que ela pode ti ajudar do package plyr. Em 18 de maio de 2015 11:22, Edson Lira <edinhoestat@yahoo.com.br> escreveu:
Diego, imaginando que é da forma abaixo seus bancos, eu faria o seguinte
dados2<-data.frame(ident=dados$id, varquero=var$dados) dados3<-data.frame(ident=dados$id, varquero=var$dados1)
var$dados=var$dados1
dfq<-rbind(dados2,dados3)
Veja que seu banco terá a soma da dimensão dos dois bancos.
[ ]'s. Edson Lira Estatístico Manaus-Amazonas
Em Sábado, 16 de Maio de 2015 13:05, Victor Eduardo < victorduca08@gmail.com> escreveu:
Oi Diego, eu tentei isso, e ele simplesmente aumenta o número de linhas. Sobe para mais de 20 mil linhas na hora do merge
Em 16 de maio de 2015 13:32, Diego Miro <d.miro1089@gmail.com> escreveu:
Victor, tente usar o argumento (all.x = TRUE) dentro do merge. Dessa forma você estará fazendo um Left Join.
Ele vai retornar a tabela dados inteira, com todos os seus registros e apenas os registros de dados1 que tenham um id pertencente a coluna id de dados. Caso não encontre o id em dados, retorna NA em dados1.
merge(x = dados, y = dados1, by = 'Id', all.x = TRUE)
Em 16 de maio de 2015 12:00, Fernando Antonio de souza < nandodesouza@gmail.com> escreveu:
Veja a função merge() Em 16/05/2015 11:35, "Victor Eduardo" <victorduca08@gmail.com> escreveu:
Bom dia, pessoal!
Estou com um problema na hora de juntar a base de dados. Estou com duas bases com as seguintes dimensões:
dim(dados) [1] 2056 11
dim(dados1) [1] 1782 2
Ambas as bases possuem uma variável chamada "id". O que queria é formar um subconjunto a partir de dados1 baseado nesses ids, ou seja, aproveitaria as variáveis da base "dados" com as variáveis em "dados1".
Eu tentei com o merge e não está dando certo. Existe alguma função que faça isso?
Abraços e ótima semana!
_______________________________________________ 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.
_______________________________________________ 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.
_______________________________________________ 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.
-- Att, Fernando Gama da Mata Vale of Institute Technology
participantes (8)
-
Diego Miro
-
Edson Lira
-
Fernando Antonio de souza
-
Fernando Gama
-
Mauro Sznelwar
-
Paulo Abreu
-
Paulo Dick
-
Victor Eduardo