Hola Leticia, podrías compartir una sección de tus datos para comprender el
 problema correctamente por favor ?

 Se me ocurre que con la librería data.table puede ser muy sencillo resolver el
 problema, pero necesito saber cómo están organizados tus datos.

 Saludos !!

 Eric.



On Wed, 26 Jun 2024 16:50:39 +0200
Leticia G Leon <gl.leti...@gmail.com> wrote:

> Hola
> Soy Leticia, quería hacer una consulta al grupo a ver si me podéis ayudar.
> 
> Tengo unos datos de proteínas, el data frame es: 5 columnas iniciales que
> tienen información sobre las proteínas y después las columnas con las
> intensidades, de las cuales no se cuantas condiciones tienen ni cuántas
> réplicas por condición.
> 
> Estoy intentando hacer un cálculo del coeficiente de variación por grupo y
> representarlo en con boxplots.
> Para poder hacer este plot, la mejor opción que he encontrado es crear una
> lista por grupo y calcular el coeficiente de variación por lista, ejemplo:
> tres condiciones == tres listas == 3 CV == 3 box in the plot.
> Mi problema y donde necesito ayuda es que no consigo hacer un
> código general para poder hacer las listas de forma automática, y esta
> parte es el cuello de botella que siempre necesita que sea hardcoded (en
> negrita) abajo.
> 
> He puesto los pasos que tengo,
> 1) pedir numero de replicas y condiciones
> 2) renombrar las intensidades en base a lo anterior
> 3) hacer las listas  ************ (AYUDA)
> 
> 
> El codigo que tengo hasta ahora es:
> ######### 1
> ## Esta parte para introducir el numero de replicas y condiciones, que
> varia segun el experimento
> x = readline("Enter number of replicates: ")
> print(paste("Number of replicates:", x ))
> 
> y = readline("How many conditions? ")
> print(paste("You have ", y , "conditions")
> 
> ###########################
> Esta parte para renombrar las intensidades usando x e y
> ###### 2
> 
> for (i in 1:y){
>   varnames[i] <- c(rep(paste0("gp_", i), y))
> }
> varnames
> 
> Group <- factor(varnames)
> 
> nu.Norm <- select_if(Norm, is.numeric)
> 
> #this part will change the columns names, do we want that?
> names(nu.Norm) <- paste0(rep(varnames, each=x), "_", 1:x)
> nu.Norm
> 
> ##############################
> Crear listas para el boxplot
> ###### 3
> 
> *listgp <- list(Norm[,6:(as.numeric(x)+5)],
> Norm[,(as.numeric(x)+5):(as.numeric(x)*2+5)],
> Norm[,(as.numeric(x)*2+5):(as.numeric(x)*3+5)])*
> 
> OR
> 
> f
> 
> 
> 
> 
> *or (c in colnames(nu.Norm)){  dat1 <- nu.Norm %>% select(
> contains("gp_1_"))  dat2 <- nu.Norm %>% select( contains("gp_2_"))  dat3 <-
> nu.Norm %>% select( contains("gp_3_"))}list.gp <http://list.gp> <-
> list(dat1, dat2, dat3)*
> 
> cv.df <- lapply(list.gp, function(x){(apply(x,1,sd)/rowMeans(x))*100})
> cvdf <-as.data.frame(do.call("cbind", cv.df))
> colnames(cvdf)<-c(varnames)
> 
> ###### crear la figura
> 
> palette<-rep(c(randomColor(y, luminosity="random")), times=c(1,1,1))
> 
> cvdf_melt<-reshape2::melt(cvdf)
> 
> g5 <-ggplot( cvdf_melt, aes(x=variable,
> y=value))+geom_boxplot(color="black",fill=palette, alpha=0.8)+##,
> fill="Experiment"
>   scale_y_continuous(limits=c(0,100), breaks=seq(0,100, by=10))+
>   theme_bw()+
>   theme(panel.grid.major = element_line(colour = "gray85"),
>         panel.grid.minor = element_line(colour = "gray85"),
>         axis.text.x = element_text(color = "black", size = 12,angle=45,
> hjust=1,vjust=1),
>         axis.text.y= element_text(color = "black", size = 12,angle=0,
> hjust=0.5,vjust=0.5),
>         axis.title.x=element_text(color = "black", size = 15,angle=0,
> hjust=0.5,vjust=0.5),
>         axis.title.y=element_text(color = "black", size = 15,angle=90,
> hjust=0.5,vjust=0.5),
>         axis.ticks.length = unit(5, "pt"),
>         axis.ticks = element_line(size = 1),
>         legend.position="none",
>         title =element_text(size=12))+
>   labs(x="", y = "CV(%)", title="Coefficient of variation")
> g5
> 
> 
> 
> GRACIAS!
> 
>       [[alternative HTML version deleted]]
> 
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a