R语言学习——by函数的一些理解

在做GEO数据挖掘时,有一步操作是整合表达矩阵,即多个探针对应一个基因的情况下,只保留在所有样本里面平均表达量最大的那个探针。

tmp <- by(exprSet,ids$symbol,
          function(x) rownames(x)[which.max(rowMeans(x))])

一开始不是很理解,所以去找了by函数的例子,如下。

类比了一下可以看出:
这个操作首先是根据symbol对exprSet进行分类;然后对同一类数据计算其行平均值;最后找出平均值最大的行,取其行名。

> library(stats)

# 看一下warpbreaks数据集的结构
> head(warpbreaks)
  breaks wool tension
1     26    A       L
2     30    A       L
3     54    A       L
4     25    A       L
5     70    A       L
6     52    A       L

> table(warpbreaks$wool)
 A  B 
27 27 

> table(warpbreaks$tension)
 L  M  H 
18 18 18 

# 可以看到by是根据tension的分类进行操作的
> by(warpbreaks[, 1:2], warpbreaks[,"tension"], summary)
warpbreaks[, "tension"]: L
     breaks      wool 
 Min.   :14.00   A:9  
 1st Qu.:26.00   B:9  
 Median :29.50        
 Mean   :36.39        
 3rd Qu.:49.25        
 Max.   :70.00        
----------------------------------------------------------------- 
warpbreaks[, "tension"]: M
     breaks      wool 
 Min.   
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值