我有一个表达数据的数据框架,其中基因是行,列是样本.我还有一个DataFrame,其中包含表达式dataframe中每个样本的元数据.实际上,我的expr数据帧有30,000多行和100多列.然而,下面是一个包含较小数据的示例.

expr <- data.frame(sample1 = c(1,2,2,0,0), 
                   sample2 = c(5,2,4,4,0), 
                   sample3 = c(1,2,1,0,1), 
                   sample4 = c(6,5,6,6,7), 
                   sample5 = c(0,0,0,1,1))
rownames(expr) <- paste0("gene",1:5)
meta <- data.frame(sample = paste0("sample",1:5),
                   treatment = c("control","control",
                                 "treatment1", 
                                 "treatment2", "treatment2"))

我想找出每个治疗过程中每个基因的平均值.在我使用Split()或GROUP_BY()的例子中,人们根据data.Frame中已经存在的列进行分组.但是,我有一个单独的数据帧(META),它对另一个数据帧(EXPR)中的列的分组进行分类.

我希望我的输出是一个以基因为行、以列为处理、以值为平均值的数据帧.

#        control   treatment1   treatment2
#  gene1  mean        mean         mean
#  gene2  mean        mean         mean

推荐答案

就像这样.在最后一步中,您不完全清楚要按什么进行分组,但您可以很容易地进行调整.

library(dplyr)
library(tidyr)

expr |>
  mutate(gene = row.names(expr)) |>
  pivot_longer(-gene, names_to = "sample") |>
  left_join(meta, by = "sample") |>
  summarize(mean = mean(value), .by = c(gene, treatment)) |> 
  pivot_wider(names_from = treatment, values_from = mean)
# # A tibble: 5 × 4
#   gene  control treatment1 treatment2
#   <chr>   <dbl>      <dbl>      <dbl>
# 1 gene1       3          1        3  
# 2 gene2       2          2        2.5
# 3 gene3       3          1        3  
# 4 gene4       2          0        3.5
# 5 gene5       0          1        4  

R相关问答推荐

编码变量a、b、c以匹配来自另一个数据点的变量x

根据R中两个变量的两个条件删除带有dspirr的行

名称输出pmap on tible

如何使下一个按钮只出现在Rshiny 的一段时间后?""

如何在Chart_Series()中更改轴值的 colored颜色 ?

在R gggplot2中是否有一种方法将绘图轴转换成连续的 colored颜色 尺度?

如何读取CSV的特定列时,给定标题作为向量

有没有办法使用ggText,<;Sub>;&;<;sup>;将上标和下标添加到同一元素?

如何在科学记数法中显示因子

使用来自嵌套列和非嵌套列的输入的PURRR:MAP和dplyr::Mariate

如何使用grepl()在数据帧列表中 Select 特定字符串?

R:如何在数据集中使用Apply

具有自定义仓位限制和计数的GGPLATE直方图

在shiny 表格中输入的文本在第一次后未更新

如何为包创建自定义roxygen2标签?

将y轴格式更改为R中的百分比

如何使用ggsurvfit包更改风险表中的标签名称?

当y为负值时,无法使stat_cor正确定位到底部?

如何将数据框压缩为更宽,同时将行输入保持为行输入,而不是R中的列名?

使用循环改进功能( struct 简单)