如何在 R 中用一个向量的每个元素减去另一个向量的每个元素?

r programmingserver side programmingprogramming更新于 2025/4/7 20:07:17

要用一个向量的每个元素减去另一个向量的每个元素,我们可以通过定义减号来使用外部函数。

例如,如果我们有两个向量 x 和 y,并且我们想用 y 中的每个元素减去 x 中的每个元素,那么我们可以使用以下命令 −

outer(x,y,`-`)

示例 1

以下代码片段创建了一个示例向量 −

x1<-rpois(10,5)
y1<-rpois(10,8)
outer(x1,y1,`-`)

创建以下向量 −

    [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10]
[1,]  1  -4  -3  -1  -4  -8  -4  -5  -1   0
[2,]  0  -5  -4  -2  -5  -9  -5  -6  -2  -1
[3,] -1  -6  -5  -3  -6  -10 -6  -7  -3  -2
[4,]  1  -4  -3  -1  -4  -8  -4  -5  -1   0
[5,] -2  -7  -6  -4  -7  -11 -7  -8  -4  -3
[6,]  1  -4  -3  -1  -4  -8  -4  -5  -1   0
[7,]  0  -5  -4  -2  -5  -9  -5  -6  -2  -1
[8,] -1  -6  -5  -3  -6  -10 -6  -7  -3  -2
[9,]  0  -5  -4  -2  -5  -9  -5  -6  -2  -1
[10,] 1  -4  -3  -1  -4  -8  -4  -5  -1   0

示例 2

以下代码片段创建了一个示例向量 −

x2<-rpois(10,10)
y2<-rpois(10,2)
outer(x2,y2,`-`)

创建以下向量 −

     [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10]
[1,]  6    9   9   7   7   7   7   7   5   7
[2,]  7   10  10   8   8   8   8   8   6   8
[3,]  7   10  10   8   8   8   8   8   6   8
[4,]  3    6   6   4   4   4   4   4   2   4
[5,] 10   13  13  11  11  11  11  11   9  11
[6,]  7   10  10   8   8   8   8   8   6   8
[7,]  9   12  12  10  10  10  10  10   8  10
[8,]  5    8   8   6   6   6   6   6   4   6
[9,]  9   12  12  10  10  10  10  10   8  10
[10,] 13  16  16  14  14  14  14  14  12  14

示例 3

以下代码片段创建了一个示例向量 −

x3<-rpois(10,1)
y3<-rpois(10,2)
outer(x3,y3,`-`)

创建以下向量 −

     [,1][,2][,3][,4][,5][,6][,7][,8][,9][,10]
[1,]  -4   0  -1   0  -1   0   -1  0  1   0
[2,]  -5  -1  -2  -1  -2  -1  -2 -1   0  -1
[3,]  -4   0  -1   0  -1   0  -1  0   1   0
[4,]  -3   1   0   1   0   1   0  1   2   1
[5,]  -3   1   0   1   0   1   0  1   2   1
[6,]  -3   1   0   1   0   1   0  1   2   1
[7,]  -3   1   0   1   0   1   0  1   2   1
[8,]  -2   2   1   2   1   2   1  2   3   2
[9,]  -4   0  -1   0  -1   0  -1  0   1   0
[10,] -4   0  -1   0  -1   0  -1  0   1   0

示例 4

以下代码片段创建了一个示例向量 −

x4<-rpois(10,5)
y4<-rpois(5,2)
outer(x4,y4,`-`)

创建以下向量 −

     [,1][,2][,3][,4][,5]
[1,]  -2  0   0   2  -3
[2,]   3  5   5   7   2
[3,]   0  2   2   4  -1
[4,]  -1  1   1   3  -2
[5,]   3  5   5   7   2
[6,]  -1  1   1   3  -2
[7,]  -1  1   1   3  -2
[8,]   2  4   4   6   1
[9,]   3  5   5   7   2
[10,] -2  0   0   2  -3

示例 5

以下代码片段创建了一个示例向量 −

x5<-rpois(10,2)
y5<-rpois(8,5)
outer(x5,y5,`-`)

创建以下向量 −

     [,1][,2][,3][,4][,5][,6][,7][,8]
[1,]  -1  -2   0  -2  -1  -3   0   1
[2,]  -5  -6  -4  -6  -5  -7  -4  -3
[3,]  -3  -4  -2  -4  -3  -5  -2  -1
[4,]  -5  -6  -4  -6  -5  -7  -4  -3
[5,]  -3  -4  -2  -4  -3  -5  -2  -1
[6,]  -4  -5  -3  -5  -4  -6  -3  -2
[7,]  -1  -2   0  -2  -1  -3   0   1
[8,]  -2  -3  -1  -3  -2  -4  -1   0
[9,]  -5  -6  -4  -6  -5  -7  -4  -3
[10,] -2  -3  -1  -3  -2  -4  -1   0

相关文章