[R] Query - Merging and conditional replacement of values in a data frame

MacQueen, Don macqueen1 at llnl.gov
Mon Feb 13 17:16:42 CET 2017


How about this?

foo <- merge(df1, df2, all=TRUE)

is.new <- !is.na(foo$v11)
foo$v1[is.new] <- foo$v11[is.new]

foo <- foo[, names(df1)]

> foo
  time  v1 v2 v3
1    1   2  3  4
2    2   5  6  4
3    3 112  3  4
4    4 112  3  4
5    5   2  3  4
6    6   2  3  4


-- 
Don MacQueen

Lawrence Livermore National Laboratory
7000 East Ave., L-627
Livermore, CA 94550
925-423-1062


On 2/11/17, 4:13 PM, "R-help on behalf of Bhaskar Mitra" <r-help-bounces at r-project.org on behalf of bhaskar.kolkata at gmail.com> wrote:

    Hello Everyone,
    
    I have two data frames df1 and df2 as shown below. They
    are of different length. However, they have one common column - time.
    
    df1 <-
    time v1  v2 v3
    1     2   3  4
    2     5   6  4
    3     1   3  4
    4     1   3  4
    5     2   3  4
    6     2   3  4
    
    
    df2 <-
    time v11  v12 v13
    3     112   3  4
    4     112   3  4
    
    By matching the 'time' column in df1 and df2, I am trying to modify column
    'v1' in df1 by replacing it
    with values in column 'v11' in df2. The modified df1 should look something
    like this:
    
    df1 <-
    time v1   v2 v3
    1     2   3  4
    2     5   6  4
    3     112 3  4
    4     112 3  4
    5     2   3  4
    6     2   3  4
    
    I tried to use the 'merge' function to combine df1 and df2 followed by
    the conditional 'ifelse' statement. However, that doesn't seem to work.
    
    Can I replace the values in df1 by not merging the two data frames?
    
    Thanks for your help,
    
    Regards,
    Bhaskar
    
    	[[alternative HTML version deleted]]
    
    ______________________________________________
    R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
    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.
    



More information about the R-help mailing list