lab1-數(shù)據(jù)預(yù)處理

本節(jié)要點(diǎn):

  • 缺失值處理
  • 歸一化

數(shù)據(jù)導(dǎo)入

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

缺失值處理

若缺失值的個(gè)數(shù)大于10,忽略該元組

QC <- function(a,i){
  numOfNA <- table(is.na(a[i,]))[1]
  if (numOfNA>=9){ 
    #看非空是否大于等于9是因?yàn)槲矣胻able(),如果有的元組沒有空值返回就是NA
    #另外 空值大于10就說明非空小于等于9哈 一個(gè)等號(hào)的差別關(guān)乎一個(gè)元組呢
    return(a[i,])
  }else{
    return(NA)
  }
}
remethy <- matrix(nrow=1,ncol=19)
remethy <- as.data.frame(remethy)
remethy <- remethy[-1,]
#創(chuàng)造一個(gè)空數(shù)據(jù)框 我喜歡這樣 因?yàn)榭梢詒bind()

for (i in 1:1000){
  qc <- QC(methylation,i)
  if (!all(is.na(qc))){
    remethy <- rbind(remethy,qc)
  }
}

剩余元組中的缺失值用相應(yīng)列的平均值代替

FillNA <- function(x){
  avg <- mean(na.omit(x))
  x[is.na(x )]<- avg
  x
}
filledmethy <- remethy
for (i in 1:19){
  filledmethy[,i] <- FillNA(remethy[,i])
}

輸出處理后數(shù)據(jù)的行數(shù)和列數(shù)

dim(filledmethy)
dim(filledmethy)

歸一化

最小-最大規(guī)范化方法

將每一個(gè)樣本中的DNA甲基化數(shù)據(jù)規(guī)范化到[0,1]

normalization <- function(x){
  x <- as.numeric(x)
  M <- as.numeric(max(x))
  m <- as.numeric(min(x))
  n <- (x-m)/(M-m)
  n
}
normedmethy <- filledmethy
for (i in 1:19){
  normedmethy[,i] <- normalization(filledmethy[,i])
}

截圖給出11-15個(gè)樣本中前20個(gè)探針的數(shù)據(jù)

normedmethy[1:20,11:15]
normedmethy[1:20,11:15]

參考

補(bǔ)缺失值

R語言填補(bǔ)缺失值

歸一化

R中,數(shù)據(jù)標(biāo)準(zhǔn)化方法

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容