[R] Updating a Data Frame

Nikhil Kaza nikhil.list at gmail.com
Thu Jul 22 20:26:44 CEST 2010



Looks like your event id is unique.  If that is so, why not just do

##Not checked

events <- events[sort(events$event),]
dataF <- dataF[sort(data$event),]

> if(doUpdate == 1){
> if(!is.null(dataF) && nrow(dataF) > 0){

events[events$eventid %in% dataF$event, c("timestamp",  
"isSynchronized","timediff)] <- cbind(dataF[,"tobiitime"],  
rep(1,nrow(dataF), (dataF[i,"ruiTime"]-dataF[,"tobiitime"]))
}


Nikhil Kaza
Asst. Professor,
City and Regional Planning
University of North Carolina

nikhil.list at gmail.com

On Jul 22, 2010, at 2:04 PM, harsh yadav wrote:

> Hi,
>
> I have a global data-frame in my R script.
>
> At some point in my script, I want to update certain columns of this
> data-frame by calling in an update function.
>
> The function looks like this:
>
> # get events data. This populates a global event data frame in the R- 
> script
>
> events <- getEvents(con, eventsFilePath)
>
> # events has columns eventid, timeStamp, isSynchronized, timeDiff;  
> with
> millions of rows
>
> updateDB <- function(eventid, newTimeStamp, oldTimeStamp){
> timeDiff <- newTimeStamp - oldTimeStamp
> #Update the events Data Frame
> events[events$eventid == eventid, "timestamp"] <<- newTimeStamp
> events[events$eventid == eventid, "isSynchronized"] <<- 1
> events[events$eventid == eventid, "timeDiff"] <<- timeDiff
> }
>
> I call this function like:
>
> # dataF is a subset of events
>
> if(doUpdate == 1){
> if(!is.null(dataF) && nrow(dataF) > 0){
> len <- nrow(dataF)
> for(i in 1:len){
> updateDB(dataF[i,"eventid"], dataF[i,"tobiiTime"], dataF[i,"ruiTime"])
> }
> }
> }
>
> However, this particular update functionality is performing very slow
> updates.
>
> Is there a better and more efficient way to update multiple fields  
> in a
> data-frame efficiently.
>
> Thanks in advance.
>
> Harsh Yadav
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> 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