I want to merge two data frames of differing lengths based on information within one column. The data in columns 3 and 4 (FROM
and TO
) describe length of core for a given lithology in the data frame Lithy
.
The core was analyzed with respect to S
at smaller size fragments in data frame chemy
. The FROM
and TO
for chemy
sit inside the range described by Lithy
.
chemy
:
coreID location FROM TO S
1 12SW 1 52.5 56.5 0.50
2 12SW 1 56.7 65.0 0.30
3 12SW 1 66.0 402.0 0.20
4 13NW 1 10.0 30.0 0.60
5 13NW 1 32.0 35.0 0.40
6 13NW 1 36.0 43.0 0.20
7 13S 4 1.0 2.0 0.60
8 13S 4 5.0 25.0 0.50
9 13S 4 26.0 150.0 0.10
10 13S 4 151.0 155.0 0.05
Lithy
:
coreID location FROM TO Lith1 Lith2 Lith3
1 12SW 1 52.5 350 peridotite fine black
2 12SW 1 350.0 420 peridotite coarse green
3 13NW 1 3.0 50 saprolite
4 13NW 1 51.0 400 granite
5 13S 4 1.0 150 diorite
6 13S 4 151.0 300 peridotite fine black
When I tried to merge, the resulting table was missing data rows – looks like it only merged for matches between coreID
and location
, rather than merging based on range in FROM
and TO
.
The code I used to merge is : together = merge(chemy, lithy) The outcome I would like to to have the lithology columns added to the chemy data frame, so that lithology is identified in appropriate rows (applied across range described by FROM and TO).