2010-12-07 22 views
1

Probablement une question débutant. Je ne peux pas sélectionner une ligne en fonction des critères de l'autre table. Ça devrait être simple, mais il me manque quelque chose.Sélection des lignes en fonction des valeurs de l'autre table

J'ai deux tables:

T1

X C 
3 a 
4 a 
41 b 

et

T2

A B C D 
1 5 a 22 
7 11 a 27 
35 49 b 29 

Je veux ajouter la colonne D à T1, où X est entre A et B dans T2 et C = C. Ainsi, la table résultante devrait ressembler à ceci:

T1b

X C D 
3 a 22 
4 a 22 
41 b 29 

Merci.

/Chris

+0

À l'avenir, s'il vous plaît essayer de fournir vos données dans ma réponse, afin que les gens peuvent copier et coller dans un R console. – Shane

Répondre

2

Ceci est une solution.

importer les données:

> con <- textConnection("X C 
+ 3 a 
+ 4 a 
+ 41 b") 
> T1 <- read.table(con, sep=" ", header=TRUE) 
> close(con) 

> con <- textConnection("A B C D 
+ 1 5 a 22 
+ 7 11 a 27 
+ 35 49 b 29") 
> T2 <- read.table(con, sep=" ", header=TRUE) 
> close(con) 

maintenant de fusion et sous-ensemble:

> T3 <- merge(T1, T2) 
> T3[T3$X > T3$A & T3$X < T3$B, c("X", "C", "D")] 
    X C D 
1 3 a 22 
3 4 a 22 
5 41 b 29 
+0

Merci, ça l'a fait!/Chris – Chris

+1

pour copier-et-pastability comme décrit ci-dessus, peut-être supprimer le '>' et '+'? – Greg