[R] Performance issue with attributes

Philippe Grosjean phgrosjean at sciviews.org
Sat Feb 22 07:59:47 CET 2014


You can use setattr() in the data.table package. It can be used too on data.frames or other objects.
Best,

Philippe Grosjean


On 22 Feb 2014, at 03:13, Smart Guy <smartguy3k at gmail.com> wrote:

> Hi All
> 
> I am having problem running the 'attributes' command to set a attribute on
> each column of a large dataset. Dataset has 80 columns and 312407 rows. Its
> taking more than 60 seconds to set simple attributes like split=TRUE,
> usermissing=FALSE.
> 
> Here is the source code, assuming Dataset1 is the one that is large :-
> 
> myfunction <- function()
> {
> cat("Before for loop:")
> print(Sys.time())
> for( colIndex in 1 : 80)
> {
> cat("Before Attr", colIndex)
> print(Sys.time())
> 
> attributes(Dataset1[1]) <- c(attributes(Dataset1[, colIndex]), list(coldesc
> = c(), usermissing = c(FALSE), missingvalues  = NULL, split = c(FALSE),
> levelLabels = c("")))
> 
> cat("After Attr:")
> print(Sys.time())
> }
> cat("After for loop:")
> print(Sys.time())
> }
> 
> Its my feeling that R is passing all 312407 rows to set 'attributes' on a
> cloumn.
> 
> Is there a more efficent way to do this?
> 
> 
> Thanks,
> SG
> 
> 	[[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