Re: [R] Modifying a data frame based on a vector that contains column numbers

2013-03-14 Thread Dimitri Liakhovitski
Thank you so much, Bill and Arun! Dimitri On Wed, Mar 13, 2013 at 9:36 PM, arun wrote: > HI, > Try this: > mydf1<- mydf > mydf1[]<-lapply(1:3,function(i) {mydf[which(i== myindex),i]<-1; mydf[,i]}) > mydf1 > # c1 c2 c3 > #1 1 NA NA > #2 NA 1 NA > #3 NA NA 1 > #4 NA 1 NA > #5 1 NA NA > >

Re: [R] Modifying a data frame based on a vector that contains column numbers

2013-03-13 Thread arun
HI, Try this:  mydf1<- mydf  mydf1[]<-lapply(1:3,function(i) {mydf[which(i== myindex),i]<-1; mydf[,i]})  mydf1 #  c1 c2 c3 #1  1 NA NA #2 NA  1 NA #3 NA NA  1 #4 NA  1 NA #5  1 NA NA  identical(mydf1,mygoal) #[1] TRUE A.K. - Original Message - From: Dimitri Liakhovitski To: r-help Cc

Re: [R] Modifying a data frame based on a vector that contains column numbers

2013-03-13 Thread William Dunlap
Try looping over columns, as in fDF <- function (x, column) { stopifnot(length(dim(x))==2, all(column > 0), all(column <= ncol(x)), length(column) == nrow(x)) u <- unique(column) tmp <- split(seq_along(column), factor(column, levels = u)) for (i in seq_along(tmp)) { x[ tmp