[R] Clever way to match two lists

Noah Silverman noahsilverman at ucla.edu
Fri Mar 22 02:58:29 CET 2013


Jim,

That's perfect.  Thanks.

Also tried Neal's method, but it wound up be MUCH slower to build the index.

Thanks,

--
Noah Silverman, M.S.
UCLA Department of Statistics
8117 Math Sciences Building
Los Angeles, CA 90095



On Mar 21, 2013, at 6:07 PM, Jim Holtman <jholtman at gmail.com> wrote:

> indx <- match(main.df$id, key$id, nomatch = 0)
> main.df$value[indx != 0] <- key$value[indx]
> 
> Sent from my iPad
> 
> On Mar 21, 2013, at 20:57, Noah Silverman <noahsilverman at ucla.edu> wrote:
> 
>> Hello,
>> 
>> I have a large data.frame of 80,000 rows where each row is a record.  Each record is indexed by a unique ID in the first column.
>> 
>> I need to update values for a column for *some* of the records.  I was given a data.frame with about 10,000 rows and two columns.  The first is the record ID, the second is the new values.
>> 
>> The slow way to do this is to loop through the new data (10,000 rows) and update the value in the corresponding master data.frame.  However this will be painfully slow.  
>> 
>> Does anyone have a clever way to shortcut the process.  In English, what I want to do is, "For each row in the update list, lookup the corresponding ID in the master data frame and update the value."
>> 
>> 
>> Ideas?
>> 
>> 
>> --
>> Noah Silverman, M.S.
>> UCLA Department of Statistics
>> 8117 Math Sciences Building
>> Los Angeles, CA 90095
>> 
>> ______________________________________________
>> 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.



More information about the R-help mailing list