R语言实操函数之数据过滤——为教学做积累

作者:半步博导 时间:2024年5月25日 19:30 阅读量:354

#过滤表达量为0超过50%的行名(基因)

data2 <- data[rowSums(data == 0) < 0.5 * ncol(data),]

#过滤重复行名(基因),只保留第一次出现的行名(基因)

data2 <- data[!duplicated(rownames(data),)]

#过滤重复基因,重复的基因取平均值

library(limma)

data2 <- avereps(data)

#过滤data文件中Var列中空值的行

data2 <- data[!(is.na(data$Var)),]

#过滤data文件中空值的行

data2 <- na.omit(data)

#删除第一列

data2 <- data[,-1]

#删除第一行

data2 <- data[-1,]

#删除data文件第一列中含义"factor1","factor3","factor3"函数的行

data2 <- data[-which(data[,1]) %in% c("factor1","factor3","factor3"),]

#如列表包含分组信息以下划线分割

#例如sample1_control     sample2_control     sample3_case     sample4_case

#将data的列名按_分割为2两部分,第二部分被定义为group

group=gsub("(.*)\\_(.*)", "\\2", colnames(data))

#将data文件与group文件上下合并,注意group文件在上面

data=rbind(group,data)

#将data文件行列转置,这一步将group从行名变成了列名,操作后在第一列

data=t(data)

#data文件group列为case的行被提取,并被赋值给data

data <- data[(data[,"group"]=="case"),]

#将data文件行列转置,这一步将group从列名又变成了行名,操作后在第一行

data=t(data)

#删除第一行,此时group列被删除,data文件变成了列名下划线后方为case的样本,例如sample4_case

data=data[-1,]