Hi, I don't get any error... DF <- cbind(DF[,c(1:3)],ave(DF[, c(4:5)],DF$B, FUN = f)) DF A B C D E 1 1 a 1999 0 0 7 3 a 2004 1 0 2 1 b 1999 0 0 10 4 b 2001 0 1 8 3 b 2004 1 1 3 1 c 1999 0 0 5 2 c 2001 0 1 11 4 c 2001 1 1 4 1 d 1999 0 0 6 2 d 2001 1 0 12 4 d 2001 1 1 9 3 d 2004 1 2
Ivan Le 2/25/2011 15:31, mathijsdevaan a écrit :
Hi, I am running the following script for a different (much larger data frame): DF = data.frame(read.table(textConnection(" A B C D E 1 1 a 1999 1 0 2 1 b 1999 0 1 3 1 c 1999 0 1 4 1 d 1999 1 0 5 2 c 2001 1 0 6 2 d 2001 0 1 7 3 a 2004 0 1 8 3 b 2004 0 1 9 3 d 2004 0 1 10 4 b 2001 1 0 11 4 c 2001 1 0 12 4 d 2001 0 1"),head=TRUE,stringsAsFactors=FALSE)) DF<-DF[order(DF$B,DF$C),]#order by developer_id and year f<- function(x) { unlist(lapply(x, FUN = function(z) cumsum(z) - z)) } DF<-cbind(DF[,c(1:3)],ave(DF[, c(4:5)],DF$B, FUN = f)) I get the following error: Error in `[<-.data.frame`(`*tmp*`, i, , value = integer(0)) : replacement has 0 items, need 37597770 In addition: Warning message: In max(i) : no non-missing arguments to max; returning -Inf The dimensions of the data frame are (50000,108), so the last line of the script becomes: DF<-cbind(DF[,c(1:3)],ave(DF[, c(4:108)],DF$B, FUN = f)) Any idea how to solve this problem? Thanks!
-- Ivan CALANDRA PhD Student University of Hamburg Biozentrum Grindel und Zoologisches Museum Abt. Säugetiere Martin-Luther-King-Platz 3 D-20146 Hamburg, GERMANY +49(0)40 42838 6231 ivan.calan...@uni-hamburg.de ********** http://www.for771.uni-bonn.de http://webapp5.rrz.uni-hamburg.de/mammals/eng/1525_8_1.php ______________________________________________ R-help@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.