Hi, On Jan 18, 2015, at 4:36 PM, Karim Mezhoud <kmezh...@gmail.com> wrote:
> Dear All, > I am trying to get correlation between Diseases (80) in columns and > samples in rows (UNEQUAL) using gene expression (at less 1000,numeric). For > this I can use CORREP package with cor.unbalanced function. > > But before to get this final matrix I need to load and to store the > expression of 1000 genes for every Disease (80). Every disease has > different number of samples (between 50 - 500). > > It is possible to get a cube of matrices with equal columns but unequal > rows? I think NO and I can't use array function. > > I am trying to get à list of matrices having the same number of columns but > different number of rows. as > > Cubist <- vector("list", 1) > Cubist$Expression <- vector("list", 1) > > > for (i in 1:80){ > > matrix <- function(getGeneExpression[i]) > Cubist$Expression[[Disease[i]]] <- matrix > > } > > At this step I have: > length(Cubist$Expression) > #80 > dim(Cubist$Expression$Disease1) > #526 1000 > dim(Cubist$Expression$Disease2) > #106 1000 > > names(Cubist$Expression$Disease1[4]) > #ABD > > names(Cubist$Expression$Disease2[4]) > #ABD > > Now I need to built the final matrices for every genes (1000) that I will > use for CORREP function. > > Is there a way to extract directly the first column (first gene) for all > Diseases (80) from Cubist$Expression? or > I don't understand most your question, but the above seems to be straight forward. Here's a toy example: # make a list of matrices, each with nCol columns and differing # number of rows, nRow nCol <- 3 nRow <- sample(3:10, 5) x <- lapply(nRow, function(x, nc) {matrix(x:(x + nc*x - 1), ncol = nc, nrow = x)}, nCol) x # make a simple function to get a single column from a matrix getColumn <- function(x, colNum) { return(x[,colNum]) } # use the function to get the column from each matrix col1 <- lapply(x, getColumn, 1) col1 Does that help answer this part of your question? If not, you may need to create a very small example of your data and post it here using the head() and dput() functions. Ben > I need to built 1000 matrices with 80 columns and unequal rows? > > Cublist$Diseases <- vector("list", 1) > > for (k in 1:1000){ > for (i in 1:80){ > > Cublist$Diseases[[gene[k] ]] <- Cubist$Expression[[Diseases[i] ]][k] > } > > } > > This double loops is time consuming...Is there a way to do this faster? > > Thanks, > karim > Ô__ > c/ /'_;~~~~kmezhoud > (*) \(*) ⴽⴰⵔⵉⵎ ⵎⴻⵣⵀⵓⴷ > http://bioinformatics.tn/ > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.