내 마우스 데이터 세트(파일 이름 = 테스트)의 중앙값을 계산하고 싶습니다. 이 데이터 세트는 매우 크기 때문에 다음 명령을 사용하여 데이터 세트를 여러 파일(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()