Acho que pode ser isso:
banco3 <- merge(banco1,banco2)
banco3[banco3$dia>=banco3$ent &banco3$dia<=banco3$sai,]
Att
Éder

Em 12 de junho de 2012 19:06, Paula Mendes Luz <luzpaulamendes@gmail.com> escreveu:
oi pessoal

eu normalmente utilizo o merge() para juntar bancos em função de 1 ou
mais variáveis que são iguais nos dois bancos. também normalmente
tenho bancos com medidas repetidas para cada indivíduo de modo que
novas linhas são criadas no ato do merge() em função das informações
dos bancos originais.

agora preciso juntar dois bancos em função de um intervalo de números
(na verdade são datas mas isso não importa):

um exemplo do que preciso fazer p o banco original com > 3000 ids seria

banco1 tem o id, a entrada, a saída, e o grupo

id <- c(1, 1, 1, 2, 2)
ent <- c(1, 10, 20, 1, 30)
sai <- c(9, 19, 40, 29, 50)
grupo <- c(1, 2, 3, 1, 2)

banco1 <- cbind(id, ent, sai, grupo)

banco2 tem o id, o dia, tipo do teste

id <- c(1, 1, 1, 1, 1, 2, 2, 2, 2)
dia <- c(5, 8, 12, 18, 25, 22, 25, 29, 41)
teste <- c("A", "A", "B", "B", "A", "B", "B", "C", "D")

banco2 <- cbind(id, dia, teste)

e o banco 3 seria o merge() dos dois em função da avaliação se o DIA
do banco2 está contido no intervalo (entre ENT e SAI) do banco1

o resultado seria o banco 3 com 5 linhas para o id1 com as 5 vars da
seguinte forma
id ent sai grupo dia teste
1 1 9 1 5 A
1 1 9 1 8 A
1 10 19 2 12 B
1 10 19 2 18 B
1 20 40 3 25 A

e 4 linhas para o id 2

alguém pode ajudar???? eu li a respeito da função findInterval() mas
não consegui fazer funcionar....

agradeço desde já! abraços, paula.
_______________________________________________
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.