[R] Data frame self-join with no duplicates
jim holtman
jholtman at gmail.com
Mon Sep 27 14:56:29 CEST 2010
try sqldf:
> require(sqldf)
> x <- read.table(textConnection("Year Price
+ 2001 10
+ 2002 20
+ 2003 30"), as.is=TRUE, header=TRUE)
> sqldf("select a.*, b.*
+ from x as a, x as b
+ where a.Year > b.Year", method='raw')
Year Price Year Price
1 2002 20 2001 10
2 2003 30 2001 10
3 2003 30 2002 20
>
On Mon, Sep 27, 2010 at 7:29 AM, Xin Zhang <xin.zhang at gmail.com> wrote:
> Suppose I have the following data frame (df):
>
> Year Price
> -------------------
> 2001 10
> 2002 20
> 2003 30
>
> I would like to produce another data frame like this:
>
> a.Year a.Price b.Year b.Price
> ----------------------------------------------------
> 2002 20 2001 10
> 2003 30 2001 10
> 2003 30 2002 20
>
> In SQL, this can be done as
>
> select a.*, b.*
> from df as a, df as b
> where a.Year > b.Year
>
> How do I do this efficiently in R?
>
> Many thanks.
>
> ______________________________________________
> 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
Cincinnati, OH
+1 513 646 9390
What is the problem that you are trying to solve?
More information about the R-help
mailing list