首页 > 解决方案 > 根据列名将矩阵拆分为两个数组

问题描述

我有一个像这样的矩阵

结构(c(“猫”,“狗”,“狗1”,“牛”,“E02.3”,“E06.7”,“E01.9”,“E01.0”,“Twe.03”, “Twl.06”、“Twl.15”、“Twl.00”、“CA/DO”、“CA”、“DO”、“CA”)、.Dim = c(4L, 4L)、.Dimnames =列表(NULL,c(“名称”,“Id1”,“Id2”,“类型”)))

我需要拆分为两个数组,只有基于 Type 列值的 Id1 值,如下所示

加州

   E02.3
   E06.7
   E01.0

  E02.3
  E01.9

CA/DO 值表示通用名称。

标签: r

解决方案


使用grep.

cbind(m[grep("CA", m[,"Type"]), "Id1"])
#      [,1]   
# [1,] "E02.3"
# [2,] "E01.9"
cbind(m[grep("DO", m[,"Type"]), "Id1"])
#      [,1]   
# [1,] "E02.3"
# [2,] "E06.7"
# [3,] "E01.0"

推荐阅读