zl程序教程

您现在的位置是:首页 >  其他

当前栏目

自建函数 输出提取固定位置的字符串 输出特定位置的字符串 正则表达 有竖线为分界线 | 中括号[] 提取某个元素 ()括号

输出 函数 字符串 元素 位置 提取 某个 正则
2023-09-14 09:16:03 时间

length(x[x==0])>=2 提取某个元素 方法一

c(1,3,4,1,9,9,0,0,0)[c(1,3,4,1,9,9,0,0,0)==0]
a.m
Whether_2 <- function(x)
{
  return(length(x[x==0])>=2)
  
}
apply(a.m,1,Whether_2)
a.m[apply(a.m,1,Whether_2),]
a.m[!apply(a.m,1,Whether_2),]

在这里插入图片描述

#自建函数,只要输入一个长的类似于"ENST00000641515.1|OR4F5-202|OR4F5|2618|protein_coding|"的字符串,
#就可以返回第一个 | 之前的名字

  return_desired_position_value<-function(x,myposition){
    strsplit(x,split = "|",fixed = T)[[1]][myposition]
  }
  return_desired_position_value("ENST00000641515.1|OR4F5-202|OR4F5|2618|protein_coding|",4)
  
  
  dat=expr.df
  dat$description=rownames(expr.df)
  dat$name=unlist( lapply(rownames(expr.df),return_desired_position_value,1))
  dat$genesymbol=unlist(lapply(rownames(expr.df),return_desired_position_value,6))  
  rownames(dat)=seq(1,length(rownames(expr.df)),1)
  
  head(dat)[1:4,1:9] #调整矩阵列顺序 产生新的列,并调整新列的位置
  dat2=dat %>% mutate(description=rownames(expr.df),
                      name=unlist( lapply(rownames(expr.df),return_desired_position_value,1)),
                      gene.symbol=unlist(lapply(rownames(expr.df),return_desired_position_value,6))  )  %>%
    select(description,name,gene.symbol,everything()) 
  head(dat2)[1:5,1:7]

在这里插入图片描述

#探索矩阵 发现一个基因对应多个探针

  grep(pattern = 'protein',x=rownames(expr.df),value = T)[1:10]
  grep(pattern ='SAMD11',x=rownames(expr.df))
  expr.df[grep(pattern ='SAMD11',x=rownames(expr.df)),1:2]

#调整列的位置

library(dplyr)
exprdf2=expr.df %>% select(grep(pattern = "control",x=colnames(expr.df)),everything()) 
head(exprdf2)[1:9,1:6]
head(exprdf2)[,1:6]
exprdf2[1:9,1:6]
colnames(exprdf2)
length(rownames(exprdf2))