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

本文介绍使用R语言进行数据处理的方法,包括自定义函数提取特定字段、应用函数筛选矩阵元素及调整数据框列顺序等实用操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信小博士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值