in R: Setting new Values in a data.table fast -


i trying set values data.table in efficient way. following code want, slow large datasets:

dtcars<-as.data.table(mtcars) for(i in 1:(dim(dtcars)[1]-1)){   for(j in 1:dim(dtcars)[2]){     if(dtcars[i,j, with=f]>10){       set(dtcars,           i=as.integer(i),           j =as.integer(j)  ,           value = dtcars[dim(dtcars)[1],j,with=f])     }   } } 

and want this... totally wrong code, expresses need , think faster. meaning want subset data.table , insert same value particular column , repeat each column.

dtcars<-as.data.table(mtcars) ns<-names(dtcars) for(j in 1:length(ns)){   dtcars[ns[j]>10]<-dtcars[20,ns[j]] } 

imo set should used sparingly, , regular := sufficient always:

for (col in names(dtcars))   dtcars[get(col) > 10, (col) := get(col)[.n]] 

Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -

Nuget pack csproj using nuspec -