If you have already got to the point where you have the two dataframes you should be able to merge them into a new dataframe and filter/subset the result.
set.seed(1234) # for reproducibility
# "The written data table is a list containing an index, an easting,
# a northing and the predicted rainfall value"
# Create a simple data frame containing made-up data
mydf1 <- data.frame(index = 1:10,
easting = c(1, 1, 3, 4, 5, 5, 5, 5, 6, 6),
northing = c(12, 13, 13, 13, 14, 14, 15, 17, 18, 20),
predicted = runif(10, 500, 1000))
# "...comparing the data to another file that contains the same grid
# and the average yearly rainfall"
# Second data frame is similar, but has rainfall instead of predicted
mydf2 <- data.frame(index = 1:10,
easting = c(1, 1, 3, 4, 5, 5, 5, 5, 6, 6),
northing = c(12, 13, 13, 13, 14, 14, 15, 17, 18, 20),
rainfall = c(runif(9, 500, 1000), -9999))
# If data frames are of same size and have mostly common columns,
# merging them probably makes it easy to manipulate the data
mydf.merged <- merge(mydf1, mydf2)
# Finally, filter the merged data frame so that it only contains
# rainfall values that are not the -9999 value that denotes sea
mydf.final <- mydf.merged[mydf.merged$rainfall > -9999, ]
This is the first data frame:
> mydf1
index easting northing predicted
1 1 1 12 556.8517
2 2 1 13 811.1497
3 3 3 13 804.6374
4 4 4 13 811.6897
5 5 5 14 930.4577
6 6 5 14 820.1553
7 7 5 15 504.7479
8 8 5 17 616.2753
9 9 6 18 833.0419
10 10 6 20 757.1256
>
This is the second dataframe:
> mydf2
index easting northing rainfall
1 1 1 12 846.7956
2 2 1 13 772.4874
3 3 3 13 641.3668
4 4 4 13 961.7167
5 5 5 14 646.1579
6 6 5 14 918.6478
7 7 5 15 643.1116
8 8 5 17 633.4104
9 9 6 18 593.3614
10 10 6 20 -9999.0000
>
Merged dataframe:
> mydf.merged
index easting northing predicted rainfall
1 1 1 12 556.8517 846.7956
2 10 6 20 757.1256 -9999.0000
3 2 1 13 811.1497 772.4874
4 3 3 13 804.6374 641.3668
5 4 4 13 811.6897 961.7167
6 5 5 14 930.4577 646.1579
7 6 5 14 820.1553 918.6478
8 7 5 15 504.7479 643.1116
9 8 5 17 616.2753 633.4104
10 9 6 18 833.0419 593.3614
>
Final dataframe with -9999 row removed:
> mydf.final
index easting northing predicted rainfall
1 1 1 12 556.8517 846.7956
3 2 1 13 811.1497 772.4874
4 3 3 13 804.6374 641.3668
5 4 4 13 811.6897 961.7167
6 5 5 14 930.4577 646.1579
7 6 5 14 820.1553 918.6478
8 7 5 15 504.7479 643.1116
9 8 5 17 616.2753 633.4104
10 9 6 18 833.0419 593.3614
>