Thanks Sven, I started with the first function. The values are not in a list but in df. it is more easy for me
the output is a df: Genes brca_tcga gbm_tcga color_brca color_gbm name1 v1 v2 col1 col2 name2 v3 v4 col3 col4 name3 v5 v6 col5 col6 attriColorGene <- function(df,colname, color=c(x,y,z)){ Max <- max(df, na.rm=TRUE) Min <- min(df, na.rm=TRUE) #"white","yellow", "darkgoldenrod3" my.colors <- colorRampPalette(c(x,y,z )) #creates a function my.colors which interpolates n colors between blue, white and red color.df <- data.frame(colname=seq(Min,Max,1), paste("col_", colname, sep="")=my.colors(Max- Min)) #generates 2001 colors from the color ramp df.with.color <- merge(df, color.df, by=colname) return(df.with.color) } for(i in 2:length(colnames(df)) ){ colname <- colnames[i] attriColorGene(df,colname, color=c(x,y,z)) } could you describe me the structure of the output of magic_colour, list_child , list_parent? Thanks Karim On Fri, Jun 5, 2015 at 6:12 PM, Sven E. Templer <sven.temp...@gmail.com> wrote: > Hi Karim, > > you should learn ?Map to iterate along the list and supply mutliple list > arguments (there is also parallel:::mcMap for multicore). > The magic of the color code generation you figure out yourself, I guess... > > > Here 'i' intends to be the value, 'n' the name, e.g. > > # returns color by character/numeric value: > magic_colour <- function (x) { ... } > > # returns child > list_child <- function (i, n) { list(name=n, colour=magic_colour(i)) } > > # returns parent > list_parent <- function (i, n) { list(name=n, children=Map(list_child, i, > names(i)), colour=magic_colour(n)) } > > # get grandparent > grandparent <- Map(list_parent, expBefore, names(expBefore)) > > > Hope this helps! > > Best, S. > > > On 5 June 2015 at 18:31, Karim Mezhoud <kmezh...@gmail.com> wrote: > >> Hi all, >> I have a list like this >> >> expBefore <- >> >> list(HM450=list(brac_tcga=list("ATM"=0.19,"ATR"=0.02,"BRCA1"=0.02,"BRCA2"=0.89,"CHEK1"=0.71,"CHEK2"=0.03), >> >> >> gbm_tcga=list("ATM"=0.19,"ATR"=0.02,"BRCA1"=0.02,"BRCA2"=0.89,"CHEK1"=0.71,"CHEK2"=0.03) >> ), >> >> >> HM27=list(brac_tcga=list("ATM"=0.19,"ATR"=0.02,"BRCA1"=0.02,"BRCA2"=0.89,"CHEK1"=0.71,"CHEK2"=0.03), >> >> >> gbm_tcga=list("ATM"=0.19,"ATR"=0.02,"BRCA1"=0.02,"BRCA2"=0.89,"CHEK1"=0.71,"CHEK2"=0.03) >> ) >> ) >> >> >> and I would convert it to >> >> expAfter <-list( >> list( >> name="HM450", >> children=list( >> list(name="brca_tcga", >> children=list( >> list(name="ATM", colour="110000"), >> list(name="ATR", colour="330000"), >> list(name="BRCA1", colour="550000"), >> list(name="BRCA2", colour="770000"), >> list(name="CHEK1", colour="990000"), >> list(name="CHEK2", colour="bb0000") >> >> ), colour="aa0000" # brca_tcga >> ), >> list(name="gbm_tcga", >> children=list( >> list(name="ATM", colour="001100"), >> list(name="ATR", colour="003300"), >> list(name="BRCA1", colour="005500"), >> list(name="BRCA2", colour="007700"), >> list(name="CHEK1", colour="009900"), >> list(name="CHEK2", colour="00bb00") >> ), colour="345345" # gbm_tcga >> ) >> >> ), colour="ffa500" # HM450 >> ), >> list( >> name="HM27", >> children=list( >> list(name="brca_tcga", >> children=list( >> list(name="ATM", colour="110000"), >> list(name="ATR", colour="330000"), >> list(name="BRCA1", colour="550000"), >> list(name="BRCA2", colour="770000"), >> list(name="CHEK1", colour="990000"), >> list(name="CHEK2", colour="bb0000") >> >> ), colour="aa0000" ##brca_tcga >> ), >> list(name="gbm_tcga", >> children=list( >> list(name="ATM", colour="001100"), >> list(name="ATR", colour="003300"), >> list(name="BRCA1", colour="005500"), >> list(name="BRCA2", colour="007700"), >> list(name="CHEK1", colour="009900"), >> list(name="CHEK2", colour="00bb00") >> ), colour="345345") #gbm_tcga >> >> ), colour="ff00ff" #HM27 >> ) >> >> ); >> any suggestion? >> Thanks >> >> [[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. >> > > [[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.