如何在R数据框中为每个或某些列创建包含行值均值的新列?


比较R数据框的列有很多方法,其中一种方法是使用一个或多个均值列。通过这种方法,我们可以将原始数据的列与均值列进行比较,也可以将均值列与另一个均值列进行比较。我们可以使用apply函数为R数据框的每个或某些列创建包含行值均值的新列。

示例

考虑以下数据框

x1 <-1:20
x2 <-1:20
x3 <-20:1
df <-data.frame(x1,x2,x3)
df

输出

x1 x2 x3
1 1 1 20
2 2 2 19
3 3 3 18
4 4 4 17
5 5 5 16
6 6 6 15
7 7 7 14
8 8 8 13
9 9 9 12
10 10 10 11
11 11 11 10
12 12 12 9
13 13 13 8
14 14 14 7
15 15 15 6
16 16 16 5
17 17 17 4
18 18 18 3
19 19 19 2
20 20 20 1

我们将为所有列的均值和某些列的均值创建一个新列:

示例

df$Means <-apply(df,1,mean)
df

输出

x1 x2 x3 Means
1 1 1 20 7.333333
2 2 2 19 7.666667
3 3 3 18 8.000000
4 4 4 17 8.333333
5 5 5 16 8.666667
6 6 6 15 9.000000
7 7 7 14 9.333333
8 8 8 13 9.666667
9 9 9 12 10.000000
10 10 10 11 10.333333
11 11 11 10 10.666667
12 12 12 9 11.000000
13 13 13 8 11.333333
14 14 14 7 11.666667
15 15 15 6 12.000000
16 16 16 5 12.333333
17 17 17 4 12.666667
18 18 18 3 13.000000
19 19 19 2 13.333333
20 20 20 1 13.666667

示例

df$Means_of_x1_and_x2 <-apply(df[,1:2],1,mean)
df

输出

x1 x2 x3 Means Means_of_x1_and_x2
1 1 1 20 7.333333 1
2 2 2 19 7.666667 2
3 3 3 18 8.000000 3
4 4 4 17 8.333333 4
5 5 5 16 8.666667 5
6 6 6 15 9.000000 6
7 7 7 14 9.333333 7
8 8 8 13 9.666667 8
9 9 9 12 10.000000 9
10 10 10 11 10.333333 10
11 11 11 10 10.666667 11
12 12 12 9 11.000000 12
13 13 13 8 11.333333 13
14 14 14 7 11.666667 14
15 15 15 6 12.000000 15
16 16 16 5 12.333333 16
17 17 17 4 12.666667 17
18 18 18 3 13.000000 18
19 19 19 2 13.333333 19
20 20 20 1 13.666667 20

示例

df$Means_of_x1_and_x3 <-apply(df[,1:3],1,mean)
df

输出

x1 x2 x3 Means Means_of_x1_and_x2 Means_of_x1_and_x3
1 1 1 20 7.333333 1 7.333333
2 2 2 19 7.666667 2 7.666667
3 3 3 18 8.000000 3 8.000000
4 4 4 17 8.333333 4 8.333333
5 5 5 16 8.666667 5 8.666667
6 6 6 15 9.000000 6 9.000000
7 7 7 14 9.333333 7 9.333333
8 8 8 13 9.666667 8 9.666667
9 9 9 12 10.000000 9 10.000000
10 10 10 11 10.333333 10 10.333333
11 11 11 10 10.666667 11 10.666667
12 12 12 9 11.000000 12 11.000000
13 13 13 8 11.333333 13 11.333333
14 14 14 7 11.666667 14 11.666667
15 15 15 6 12.000000 15 12.000000
16 16 16 5 12.333333 16 12.333333
17 17 17 4 12.666667 17 12.666667
18 18 18 3 13.000000 18 13.000000
19 19 19 2 13.333333 19 13.333333
20 20 20 1 13.666667 20 13.666667

示例

$Means_of_x2_and_x3 &klt;-apply(df[,2:3],1,mean)
df

输出

x1 x2 x3 Means Means_of_x1_and_x2 Means_of_x1_and_x3 Means_of_x2_and_x3
1 1 1 20 7.333333 1 7.333333 10.5
2 2 2 19 7.666667 2 7.666667 10.5
3 3 3 18 8.000000 3 8.000000 10.5
4 4 4 17 8.333333 4 8.333333 10.5
5 5 5 16 8.666667 5 8.666667 10.5
6 6 6 15 9.000000 6 9.000000 10.5
7 7 7 14 9.333333 7 9.333333 10.5
8 8 8 13 9.666667 8 9.666667 10.5
9 9 9 12 10.000000 9 10.000000 10.5
10 10 10 11 10.333333 10 10.333333 10.5
11 11 11 10 10.666667 11 10.666667 10.5
12 12 12 9 11.000000 12 11.000000 10.5
13 13 13 8 11.333333 13 11.333333 10.5
14 14 14 7 11.666667 14 11.666667 10.5
15 15 15 6 12.000000 15 12.000000 10.5
16 16 16 5 12.333333 16 12.333333 10.5
17 17 17 4 12.666667 17 12.666667 10.5
18 18 18 3 13.000000 18 13.000000 10.5
19 19 19 2 13.333333 19 13.333333 10.5
20 20 20 1 13.666667 20 13.666667 10.5

更新于:2020年8月21日

5K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始学习
广告