HI, Dennis, Thanks for the helps! All roads to Rome, appreciated!
On Thu, Sep 22, 2011 at 2:54 PM, Dennis Murphy <djmu...@gmail.com> wrote: > Hi: > > Here's one approach with package reshape2. I copied the same data > frame 10 times to illustrate the idea, but as long as your data frames > have the same structure (same variables, same dimension), this should > work. > > library('plyr') > library('reshape2') > > # Use your example data as the template: > ds <- read.table(textConnection(" > probe_name chr_id position y > 1 C-7SARK 1 849467 10 > 2 C-4WYLN 1 854278 10 > 3 C-3BFNY 1 854471 10 > 4 C-7ONNE 1 874460 10 > 5 C-6HYCN 1 874571 10 > 6 C-7SCGC 1 874609 10"), header = TRUE, stringsAsFactors = > FALSE) > closeAllConnections() > > # Note how I use y for the response instead of arrayxx. > > # Copy the data frame 10 times and put it into a list; these are > # placeholders for the real data frames > L <- lapply(seq_len(10), function(i) ds) > > # Name the list components array01 - array10, ... > names(L) <- c(paste('array0', 1:9, sep = ''), 'array10') > > # The advantage of using rbind in conjunction with ldply() is that it > outputs > # the list names as an .id variable > u <- ldply(L, rbind) > head(u) > > # Reshape the data so that the y values in each component are associated > # with the component name: > dcast(u, probe_name + chr_id + position ~ .id, value_var = 'y') > probe_name chr_id position array01 array02 array03 array04 array05 array06 > 1 C-3BFNY 1 854471 10 10 10 10 10 > 10 > 2 C-4WYLN 1 854278 10 10 10 10 10 > 10 > 3 C-6HYCN 1 874571 10 10 10 10 10 > 10 > 4 C-7ONNE 1 874460 10 10 10 10 10 > 10 > 5 C-7SARK 1 849467 10 10 10 10 10 > 10 > 6 C-7SCGC 1 874609 10 10 10 10 10 > 10 > array07 array08 array09 array10 > 1 10 10 10 10 > 2 10 10 10 10 > 3 10 10 10 10 > 4 10 10 10 10 > 5 10 10 10 10 > 6 10 10 10 10 > > HTH, > Dennis > > On Thu, Sep 22, 2011 at 10:07 AM, Changbin Du <changb...@gmail.com> wrote: > > HI, Dear R community, > > > > I am trying to created new variables and put into a data frame through a > > loop. > > > > My original data set: > > > > head(first) > > probe_name chr_id position array1 > > 1 C-7SARK 1 849467 10 > > 2 C-4WYLN 1 854278 10 > > 3 C-3BFNY 1 854471 10 > > 4 C-7ONNE 1 874460 10 > > 5 C-6HYCN 1 874571 10 > > 6 C-7SCGC 1 874609 10 > > > > > > I have 48 other array data from a list result.fun > > array2=result.fun[[1]] > > array3=result.fun[[2]] > > . > > . > > > > I want the following results: > > > > probe_name chr_id position array1 array2 array3 > > 1 C-7SARK 1 849467 10 10 10 > > 2 C-4WYLN 1 854278 10 10 10 > > 3 C-3BFNY 1 854471 10 10 10 > > 4 C-7ONNE 1 874460 10 10 10 > > 5 C-6HYCN 1 874571 10 10 10 > > 6 C-7SCGC 1 874609 10 10 10 > > > > > > I used the following codes: > > > > for (i in 2:3) { > > > > assign(lab=paste("array", i, sep=""), value=result.fun[[i-1]]) > > > > first <-cbind(first, lab) > > > > } > > > > *Error in assign(lab = paste("array", i, sep = ""), value = result.fun[[i > - > > : > > unused argument(s) (lab = paste("array", i, sep = ""))* > > > > > > Can anyone give some hits or helps? > > > > Thanks so much! > > > > > > > > > > > > > > -- > > Sincerely, > > Changbin > > -- > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > 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. > > > -- Sincerely, Changbin -- [[alternative HTML version deleted]] ______________________________________________ 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.