有没有R/shell/Perl/python代码可以根据第一列和第二列计算第三列的平均值



我们需要一个代码R/shell/Perl/python来计算基于第一列和第二列的第三列的平均值。我们有大量数据,因此需要一个代码/命令。这是我的输入示例和所需的输出格式。

[Input_data_sample][1]
Gene_IDs    Tissues     Expressions
A   X   2
A   X   3
A   Y   2
B   X   3
B   X   4
B   Y   5
B   Y   2
C   X   3
C   X   2
C   Y   3
C   Y   2
C   Y   3
D   X   2
D   Y   2
D   Y   3

需要的预期输出

[Expected_Output][2]
Gene ID     Tissue         Expression_average_of each tissue_for_each_Gens_IDs
A                  X                 2.5
A                  Y                 2
B                  X                 3.5
B                  Y                 3.5

开始吧。我已经使用了你帖子中的数据。它是使用tidyverse包中的dplyr库的R代码。

> library(dplyr)
> df = read.table(text="Gene_IDs    Tissues     Expressions
+ A   X   2
+ A   X   3
+ A   Y   2
+ B   X   3
+ B   X   4
+ B   Y   5
+ B   Y   2
+ C   X   3
+ C   X   2
+ C   Y   3
+ C   Y   2
+ C   Y   3
+ D   X   2
+ D   Y   2
+ D   Y   3
+ ",  header=T) %>% tibble()
> df
# A tibble: 15 × 3
Gene_IDs Tissues Expressions
<chr>    <chr>         <int>
1 A        X                 2
2 A        X                 3
3 A        Y                 2
4 B        X                 3
5 B        X                 4
6 B        Y                 5
7 B        Y                 2
8 C        X                 3
9 C        X                 2
10 C        Y                 3
11 C        Y                 2
12 C        Y                 3
13 D        X                 2
14 D        Y                 2
15 D        Y                 3
> df %>% group_by(Gene_IDs, Tissues) %>% summarise(avg = mean(Expressions))
# A tibble: 8 × 3
# Groups:   Gene_IDs [4]
Gene_IDs Tissues   avg
<chr>    <chr>   <dbl>
1 A        X        2.5 
2 A        Y        2   
3 B        X        3.5 
4 B        Y        3.5 
5 C        X        2.5 
6 C        Y        2.67
7 D        X        2   
8 D        Y        2.5 

最新更新