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-boun...@r-project.org on behalf of bhaskar.kolk...@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@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. ______________________________________________ R-help@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.