【问题标题】:Matching, merging, finding duplicated value in R在 R 中匹配、合并、查找重复值
【发布时间】:2015-11-22 05:49:30
【问题描述】:

在 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 的标题和矩阵 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

它说“下标超出范围”。

如何避免这个问题?

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

【问题讨论】:

标签: r matrix merge match duplicate-data


【解决方案1】:

看看这是否有效:

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

【讨论】:

  • 我觉得intersect(colnames(A), B[,1])更自然。
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 2021-12-23
相关资源
最近更新 更多