首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R中的正则表达式和中位数计算

R中的正则表达式和中位数计算
EN

Stack Overflow用户
提问于 2015-12-13 02:52:42
回答 1查看 140关注 0票数 0

我有一个表达矩阵,也就是一个包含一些基因在不同人类样本中表达水平的矩阵,还有一些样本是重复的,所以我需要将这些重复中的表达组合起来,并计算出中位数。我将样本的名称作为行,在每一列中我有一个基因的表达。(我有大约200,000个基因,所以大约有200,000列)。第一列如下所示:

代码语言:javascript
运行
复制
Adipocyte - breast, donor1
Adipocyte - breast, donor2
Adipocyte - omental, donor1
Adipocyte - omental, donor2
Adipocyte - omental, donor3
Alveolar Epithelial Cells, donor1
Alveolar Epithelial Cells, donor2
Amniotic Epithelial Cells, donor1
Amniotic Epithelial Cells, donor3

其余的列对应于数字(不同基因的表达)。

所以我想我需要先写一个正则表达式,来获取那些在coma之前相等的行,这样它就可以捕捉到相同细胞类型的不同捐赠者,然后计算每个基因表达的中位数。

你有什么办法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-12-13 03:48:11

这里有一个不太优雅的解决方案(主要是因为字符串拆分函数"strsplit"),但它不需要任何额外的包,而且更容易理解,因为R用户更熟悉语法(前一个解决方案是使用Hadley Wickham编写的包,我相信他使用的语法略有不同)。

代码语言:javascript
运行
复制
# Dummy data
dat <- data.frame(tissue = c("Adipocyte - breast, donor1", 
                             "Adipocyte - breast, donor2", 
                             "Adipocyte - omental, donor1", 
                             "Adipocyte - omental, donor2",
                             "Adipocyte - omental, donor3", 
                             "Alveolar Epithelial Cells, donor1",
                             "Alveolar Epithelial Cells, donor2", 
                             "Amniotic Epithelial Cells, donor1",
                             "Amniotic Epithelial Cells, donor3"),
                  val1 = rnorm(9),
                  val2 = rnorm(9),
                  val200000 = rnorm(9))


# Use "aggregate" function form the default "stats" package
aggregate(x = dat[2:ncol(dat)],
          by = list(factor(do.call("c", 
                                   lapply(strsplit(x = as.character(dat$tissue), 
                                                   split = ","),
                                          function(a)a[1])))),
          FUN = "median")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34243634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档