¿Cómo aplicar un flujo de trabajo desde la importación hasta el procesamiento en 100 archivos de datos al mismo tiempo?
¿Cómo aplicaría un flujo de trabajo desde el principio hasta el final, como un bucle for en R, excepto con todos los archivos de datos en mi directorio de trabajo?
Mi flujo de trabajo tiene los siguientes componentes:
<h1>Cargar bibliotecas</h1>
library(tidyr)
library(ggplot2)
library(dplyr)
<h1>Importar datos</h1>
File_1 <- as.data.frame(read.table("file_1.bed", header = FALSE, sep = "\t", stringsAsFactors = FALSE, quote = ""))
<h1>Separar una de las columnas en 2 nuevas columnas</h1>
filtered_File_1 <- separate(data = File_1, col = V3, into = c("posición final", "Metilación"), sep = "|")
<h1>Cambiar los valores de NAN a cero</h1>
new_File_1 <- filtered_File_1[- grep("NAN", filtered_File_1$Metilación), ]
filtered_File_1$Metilación[filtered_File_1$Metilación == "NAN"] <- '0'
<h1>Cambiar los valores a numéricos</h1>
filtered_File_1$Metilación <- as.numeric(as.character(filtered_File_1$Metilación))
<h1>Agregar nueva columna</h1>
filtered_File_1$ID <- c("1")
<h1>Calcular el promedio de los valores numéricos</h1>
Promedio <- filtered_File_1 %>%
group_by(V1) %>%
summarise(across(everything(), list(mean)))
Básicamente, ¿cómo iteraría el proceso anterior una y otra vez para los 100 archivos de datos? La razón es que individualmente es un poco tedioso copiar y pegar las líneas de código y también hará que el script de R sea muy largo. Sé cómo usar lapply para listas, pero ¿qué permitiría algo mucho más complicado que involucre importación y procesamiento de archivos? Debe haber una manera más fácil.
Gracias
davy.ai
Para aplicar el flujo de trabajo a todos los archivos de datos en su directorio de trabajo, puede utilizar un bucle for para iterar a través de cada archivo y realizar el mismo conjunto de operaciones en cada archivo. Aquí hay un ejemplo de cómo puede modificar el código para lograr esto:
En este código, primero obtenemos una lista de todos los archivos “.bed” en el directorio de trabajo utilizando la función
list.files()
. Luego, iteramos a través de cada archivo utilizando un bucle for y realizamos el mismo conjunto de operaciones en cada archivo. Los resultados se almacenan en un marco de datos vacío llamadoresult_df
, que se une utilizando la funciónbind_rows()
al final.Tenga en cuenta que este enfoque asume que todos los archivos en el directorio de trabajo tienen el mismo formato y se pueden procesar utilizando el mismo conjunto de operaciones. Si sus archivos tienen formatos diferentes o requieren pasos de procesamiento diferentes, es posible que deba modificar el código en consecuencia.