如何根据R中特定列中的值对矩阵进行子集化?

要基于特定列中的值对矩阵进行子集化,我们可以使用单个方括号并提供行和列值。将为我们要子集化的列设置列值,并为要使用其子集化矩阵的列的值设置行值。

查看以下示例以了解其工作原理。

示例

以下代码段创建了一个矩阵 -

M<-matrix(rpois(80,5),ncol=4)
M

创建以下矩阵 -

    [,1] [,2][,3][,4]
[1,]  8   4   6   3
[2,]  5   6   1   8
[3,]  5   4   7   5
[4,]  3   9   1   6
[5,]  6   4   3   5
[6,]  3   4   3   5
[7,]  7   6   5   6
[8,]  7   5   7   1
[9,]  9   6   9   6
[10,] 5   4   5   5
[11,] 5   8   4   4
[12,] 3   2   7   4
[13,] 4   3   1   6
[14,] 1   4   4   5
[15,] 4   7   5   4
[16,] 5   2   6   4
[17,] 5   6   3   5
[18,] 8   8   3   6
[19,] 8   5   4   6
[20,] 2   5   6   3

要根据特定列中的值对矩阵进行子集化,请将以下代码添加到上述代码段中 -

M[,4]<-rep(c(1,2,3,4),times=5)
M

如果您执行上面给定的代码片段,它会生成以下输出 -

    [,1][,2][,3][,4]
[1,]  8  4   6   1
[2,]  5  6   1   2
[3,]  5  4   7   3
[4,]  3  9   1   4
[5,]  6  4   3   1
[6,]  3  4   3   2
[7,]  7  6   5   3
[8,]  7  5   7   4
[9,]  9  6   9   1
[10,] 5  4   5   2
[11,] 5  8   4   3
[12,] 3  2   7   4
[13,] 4  3   1   1
[14,] 1  4   4   2
[15,] 4  7   5   3
[16,] 5  2   6   4
[17,] 5  6   3   1
[18,] 8  8   3   2
[19,] 8  5   4   3
[20,] 2  5   6   4

要根据特定列中的值对矩阵进行子集化,请将以下代码添加到上述代码段中 -

M[M[,4]==1,c(1:3)]

如果您执行上面给定的代码片段,它会生成以下输出 -

    [,1][,2][,3]
[1,]  8  4   6
[2,]  6  4   3
[3,]  9  6   9
[4,]  4  3   1
[5,]  5  6   3

要根据特定列中的值对矩阵进行子集化,请将以下代码添加到上述代码段中 -

M[M[,4]==2,c(1:3)]

如果您执行上面给定的代码片段,它会生成以下输出 -

    [,1][,2][,3]
[1,]  5  6   1
[2,]  3  4   3
[3,]  5  4   5
[4,]  1  4   4
[5,]  8  8   3

要根据特定列中的值对矩阵进行子集化,请将以下代码添加到上述代码段中 -

M[M[,4]==3,c(1:3)]

如果您执行上面给定的代码片段,它会生成以下输出 -

    [,1][,2][,3]
[1,]  5  4   7
[2,]  7  6   5
[3,]  5  8   4
[4,]  4  7   5
[5,]  8  5   4

要根据特定列中的值对矩阵进行子集化,请将以下代码添加到上述代码段中 -

M[M[,4]==4,c(1:3)]

如果您执行上面给定的代码片段,它会生成以下输出 -

    [,1][,2][,3]
[1,]  3  9   1
[2,]  7  5   7
[3,]  3  2   7
[4,]  5  2   6
[5,]  2  5   6