하나의 큰 파일에서 생성된 여러 분할 파일의 중앙값을 계산하는 방법

하나의 큰 파일에서 생성된 여러 분할 파일의 중앙값을 계산하는 방법

내 마우스 데이터 세트(파일 이름 = 테스트)의 중앙값을 계산하고 싶습니다. 이 데이터 세트는 매우 크기 때문에 다음 명령을 사용하여 데이터 세트를 여러 파일(n=5)로 분할했습니다.

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

이 단계를 마치면 이제 test.split0000, test.split0001, test.split0002, test.split0003, test.split0004라는 5개의 파일이 생겼습니다.

중앙값을 계산하기 위해 다음 스크립트를 사용합니다.

#!/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()

하지만 이제 파일이 여러 개 있으므로 모든 분할 파일에서 함께 작동하는 단일 스크립트를 실행하고 싶습니다.

감사합니다

답변1

"중앙값은 숫자 그룹의 중앙, 중앙 또는 중간 지점입니다. 숫자 집합을 가장 낮은 것부터 높은 것까지 주문할 때 중앙값은 바로 가운데에 있는 숫자입니다. 집합에 있는 값의 50%는 숫자 아래에 나타납니다. 중앙값이고 50%는 중앙값보다 높습니다."

따라서 R을 사용하지 마십시오. 큰 파일을 정렬하면 됩니다. 중간 값이 중앙값입니다.

답변2

 #!/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()

관련 정보