[R] data.frame objects as seen by tapply

Ivan Alves papucho at mac.com
Thu Apr 21 13:32:09 CEST 2005


Dear all,

I have encountered a bizarre ocurrence: tapply() does not treat the columns of data.frame[,cols] in the same way as those of data.frame[1:length(data.frame),cols].  Whilst for the latter it identifies the "length" of the column to be length(data.frame) in the former it does not seem to.  I am enclosing the code where this happens.  Any clues?

asset.t <- sapply(
#	asset[,sapply(asset,is.numeric),drop=T], # returns error "Error in tapply(x, frame[row, index], FUN = sum, na.rm = TRUE) : 	arguments must have same length"
	asset[1:length(asset),sapply(asset,is.numeric)],
	FUN = apply_cols,
	frame = asset,
	index = "NAME"
	)

#	Function definitions

apply_cols <- function(x, frame, row = 1:length(frame), index)
	tapply(
	x,
	frame[row, index],
	FUN=sum,
	na.rm=TRUE
	)
----------
Ivan Alves
Mailto://papucho@mac.com




More information about the R-help mailing list