하나의 열을 기반으로 한 정규화를위한 R 함수?
Nov 17 2020
마지막 열 (샘플) 샘플 = 시퀀스 된 게놈 수를 기반으로 R에서이 테이블을 정규화 할 수 있습니까? 그래서 저는 모든 조건에서 모든 유전자의 정규화 된 분포를 얻고 싶습니다.
내 데이터의 단순화 된 예 :

나는 시도했다 :
dat1 <- read.table(text = " gene1 gene2 gene3 samples
condition1 1 1 8 120
condition2 18 4 1 118
condition3 0 0 1 75
condition4 32 1 1 130", header = TRUE)
dat1<-normalize(dat1, method = "standardize", range = c(0, 1), margin = 1L, on.constant = "quiet")
그러나 결과에는 음수 값이 포함되어 있으며이 방법이 얼마나 유용한 지 잘 모르겠습니다. 의미있는 결과를 얻기 위해 데이터를 정규화하는 방법을 제안 해 주시겠습니까?
멍청한 질문이라면 대단히 감사하고 사과드립니다.
답변
1 StupidWolf Nov 17 2020 at 22:10
데이터를 사용하여 먼저 min max 함수를 작성합니다.
minmax = function(x){ (x-min(x))/(max(x)-min(x))}
그런 다음 열을 반복합니다.
norm = data.frame(lapply(dat1[,1:3],function(i) minmax(i/dat1$samples)))
그리고 다음과 같이 보입니다. 정확하기를 바랍니다.
gene1 gene2 gene3
1 0.03385417 0.2458333 1.00000000
2 0.61970339 1.0000000 0.01326455
3 0.00000000 0.0000000 0.09565217
4 1.00000000 0.2269231 0.00000000