[R] sqldf merging with subset in specific range

jim holtman jholtman at gmail.com
Thu Dec 27 01:08:32 CET 2012


Is this what you want:


>  m <- read.table(text = "10
+  15
+  36
+  37
+  38
+  44
+  45
+  57
+  61
+  62
+  69 ")
> n <- read.table(text = "30   38
+  52   62   ")
>
>  require(sqldf)
>  sqldf("select m.V1
+ from m, n
+ where m.V1 between n.V1 and n.V2
+  ")
  V1
1 36
2 37
3 38
4 57
5 61
6 62
>


On Wed, Dec 26, 2012 at 7:00 PM, Matthew Liebers <mrl86 at cornell.edu> wrote:
> Hi all:
>
> I have two data sets.  Set A includes a long list of hits in a single
> column, say:
> m$V1
> 10
> 15
> 36
> 37
> 38
> 44
> 45
> 57
> 61
> 62
> 69 ...and so on
>
> Set B includes just a few key ranges set up by way of a minimum in column X
> and a maximum in column Y.  Say,
> n$X n$Y
> 30   38   # range from 30 to 38
> 52   62   # range from 52 to 62
>
> I would like the output to be the rows containing the following columns:
> m$V1
> 36
> 37
> 38
> 57
> 61
> 62
>
> I am interested in isolating the hits in data set A that correspond to any
> of the "hotspot" ranges in data set B.  I have downloaded sqldf and tried a
> couple things but I cannot do a traditional merge since set B is based on a
> range.  I can always do a manual subset but I am trying to figure out if
> there is anything more expedient since these df's will be quite large.
>
> Thanks!
>
> Matt
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.




More information about the R-help mailing list