如何在R中使用列名过滤矩阵的单列?

如果矩阵有列名,要在 R 中过滤矩阵的单个列,我们可以简单地使用单个方括号,但这将导致没有列名的向量。如果我们想使用列名,则需要使用 drop=FALSE 参数传递列名或列号,如下面的示例所示。

示例 1

> M1<-matrix(sample(0:1,80,replace=TRUE),ncol=4)

> colnames(M1)<-c("V1","V2","V3","V4")

> M1

输出结果
      V1 V2 V3 V4

[1,]  0  0  1  0

[2,]  1  1  1  1

[3,]  0  0  0  0

[4,]  0  1  1  0

[5,]  1  1  1  1

[6,]  0  1  1  0

[7,]  0  1  0  1

[8,]  1  1  0  1

[9,]  1  1  0  1

[10,] 0  0  1  0

[11,] 0  0  0  1

[12,] 0  1  0  0

[13,] 0  0  0  0

[14,] 1  0  0  0

[15,] 0  1  0  1

[16,] 0  0  1  0

[17,] 1  1  1  1

[18,] 1  0  1  1

[19,] 1  0  1  1

[20,] 0  0  0  0

从 M1 中提取列 V1 -

> M1[,"V1",drop = FALSE]
输出结果
      V1

[1,]  0

[2,]  1

[3,]  0

[4,]  0

[5,]  1

[6,]  0

[7,]  0

[8,]  1

[9,]  1

[10,] 0

[11,] 0

[12,] 0

[13,] 0

[14,] 1

[15,] 0

[16,] 0

[17,] 1

[18,] 1

[19,] 1

[20,] 0

例2

> M2<-matrix(sample(c("Yes","No"),40,replace = TRUE),ncol=2)

> colnames(M2)<-c("Binary1","Binary2")

> M2

输出结果
    Binary1 Binary2

[1,]  "Yes" "Yes"

[2,]  "Yes" "No"

[3,]  "Yes" "No"

[4,]  "Yes" "Yes"

[5,]  "Yes" "Yes"

[6,]  "No"  "No"

[7,]  "Yes" "Yes"

[8,]  "No"  "Yes"

[9,]  "No"  "No"

[10,] "Yes" "Yes"

[11,] "Yes" "Yes"

[12,] "Yes" "No"

[13,] "Yes" "No"

[14,] "No"  "Yes"

[15,] "No"  "Yes"

[16,] "Yes" "Yes"

[17,] "No"  "Yes"

[18,] "Yes" "Yes"

[19,] "Yes" "Yes"

[20,] "No"  "No"

从 M2 中提取列 Binary2 -

> M2[,"Binary2",drop = FALSE]
输出结果
     Binary2

[1,]  "Yes"

[2,]  "No"

[3,]  "No"

[4,]  "Yes"

[5,]  "Yes"

[6,]  "No"

[7,]  "Yes"

[8,]  "Yes"

[9,]  "No"

[10,] "Yes"

[11,] "Yes"

[12,] "No"

[13,] "No"

[14,] "Yes"

[15,] "Yes"

[16,] "Yes"

[17,] "Yes"

[18,] "Yes"

[19,] "Yes"

[20,] "No"

以上是 如何在R中使用列名过滤矩阵的单列? 的全部内容, 来源链接: utcz.com/z/327618.html

回到顶部