Como calcular a mediana para vários arquivos divididos gerados a partir de um arquivo grande

Como calcular a mediana para vários arquivos divididos gerados a partir de um arquivo grande

Quero calcular a mediana do conjunto de dados do meu mouse (nome do arquivo = teste). Este conjunto de dados é muito grande, então divido o conjunto de dados em vários arquivos (n=5) com este comando:

 split -l$((`wc -l < test`/5)) test test.split -da 4

Após esta etapa, agora tenho 5 arquivos test.split0000, test.split0001, test.split0002, test.split0003, test.split0004.

Eu uso o seguinte script para calcular a mediana

#!/usr/bin/R

data <- read.table("Input_file", row.names=1, header=T)

M <- apply(data, 1, median) 

write.table(M, "Final_median_mousegene", quote=FALSE, sep="\t", row.names=TRUE)

q()

Mas agora tenho vários arquivos, então quero executar um único script que funcione junto em todos os arquivos divididos.

Obrigado

Responder1

"A mediana é o ponto médio, central ou intermediário de um grupo de números. Quando você ordena um conjunto de números do menor para o maior, a mediana é o número diretamente no meio. Cinquenta por cento dos valores em um conjunto ocorrem abaixo do mediana e 50% estão acima da mediana."

Portanto, não use R - apenas classifique o arquivo grande, o valor intermediário é o valor mediano.

Responder2

 #!/usr/bin/R

 files <- list.files(pattern = "test.split*")

 for (i in 1:length(files)){
 data <- read.table(files[i], header=F, row.names = 1)
 M <- apply(data, 1, median) 
 write.table(M, paste0("Median_", files[i]), quote=FALSE, sep="\t", 
 row.names=TRUE)
 }
q()

informação relacionada