在 R 中匹配、合并、查找重复值

Matching, merging, finding duplicated value in R

在 R 中,我想匹配并合并两个矩阵。

例如,

> A
     ID   a  b  c  d  e  f  g
  1  ex   3  8  7  6  9  8  4
  2  am   7  5  3  0  1  8  3
  3  ple  8  5  7  9  2  3  1

> B
    col1
  1  a
  2  c
  3  e
  4  f

然后,我想匹配矩阵 A 的 header 和矩阵 B 的第一列。

所以我做了

> C<-A[, c('ID', B[, 1])]

最终结果如下。

> C
     ID   a  c  e  f
  1  ex   3  7  9  8
  2  am   7  3  1  8
  3  ple  8  7  2  3

但是,如果矩阵 B 有一些值不在矩阵 A 中,如下所示,

> B
    col1
  1  a
  2  c
  3  e
  4  f
  5  x
  6  y

它说 'subscript out of bounds'。

如何避免这个问题?

(如何只提取重复的列?)

看看这是否有效:

C<-A[, c('ID', colnames(A)[colnames(A) %in% B[,1]])]