[R] Adding two files into one and vlookup

Gabor Grothendieck ggrothendieck at gmail.com
Wed Jul 7 02:26:34 CEST 2010


On Tue, Jul 6, 2010 at 6:18 PM, raghu <r.raghuraman at gmail.com> wrote:
>
> I have two files with dates and prices in each. The number of rows in each of
> them will differ. How do I create a new file which contains data from both
> these files? Cbind and merge are not helpful. For cbind because the rows are
> not the same replication occurs. Also if I have similar data how do I write
> a vlookup kind of function? I am giving an example below:
> Say Price1 file contains the following:
> Date             Price
> 2/3/2010       134.00
> 3/3/2010       133.90
> 4/3/2010       135.55
>
> And say price2 contains the following:
> Date              Price
> 2/3/2010        2300
> 3/3/2010        3200
> 4/3/2010        1800
> 5/3/2010        1900
>
> I want to take both these data together in a single file, and take the
> smaller vector (or matrix or dataframe??..i am new to R and still confused
> with the various objects) which is file1 (because it contains fewer rows )
> and vlookup prices in the second file basedon the dates on file1 and write
> three columns (date, price from 1 and price from2) in a new file. How do i
> do this please?
>

Try this and for more read the three vignettes (pdf documents) in the
zoo package and also read the R News 4/1 article on dates and times:

Lines1 <- "Date             Price
2/3/2010       134.00
3/3/2010       133.90
4/3/2010       135.55"

Lines2 <- "Date              Price
2/3/2010        2300
3/3/2010        3200
4/3/2010        1800
5/3/2010        1900"

library(zoo)
library(chron)
z1 <- read.zoo(textConnection(Lines1), header = TRUE, FUN = chron)
z2 <- read.zoo(textConnection(Lines2), header = TRUE, FUN = chron)
merge(z1, z2) # keep all rows in each
merge(z1, z2, all = FALSE) # keep only rows in both
merge(z1, z2, all = c(TRUE, FALSE)) # keep all rows in z1
merge(z1, z2, all = c(FALSE, TRUE)) # keep all rows in z2



More information about the R-help mailing list