将列值的片段与R中的另一列值匹配

将列值的片段与R中的另一列值匹配,r,match,R,Match,我想将原始ID与新ID进行匹配,新ID只是原始ID的一部分,并返回所有原始ID。例如,对于data.framedat,OrigID是一个列名。ID值为XXX\u X\u XXX,新ID仅为下划线符号\ux后的最后一部分,即XXX。我怎样才能配得上这个 我不知道如何只返回片段。我认为这会返回所有点击,而不仅仅是“\u1”后面的部分,给了我太多的值。我还想在ID不匹配的地方将NA值放在向量中 前 IDdat我们可以使用grep grep(new_ID, colnames(dat)) 这一点我还不清

我想将原始ID与新ID进行匹配,新ID只是原始ID的一部分,并返回所有原始ID。例如,对于data.frame
dat
OrigID
是一个列名。ID值为
XXX\u X\u XXX
,新ID仅为下划线符号
\ux
后的最后一部分,即
XXX
。我怎样才能配得上这个

我不知道如何只返回片段。我认为这会返回所有点击,而不仅仅是“\u1”后面的部分,给了我太多的值。我还想在ID不匹配的地方将NA值放在向量中


IDdat我们可以使用
grep

grep(new_ID, colnames(dat))

这一点我还不清楚。你能给出一个实际的例子和预期的输出吗?据我从你的问题中了解,new\u ID是OrigID在最后一个
\u
之后的子字符串。我不确定它们如何匹配或是相同的。
match(substr(OrigID,7,9),new\u ID)
或类似的东西,我想,但我们都在猜测,没有合适的示例数据。示例是:OrigID=123\u X\u 333,我想匹配新ID,它只会是333。我想将所有origid返回到一个向量中。当我使用grep时,它告诉我参数模式的长度>1,并且只有第一个元素是used@user6210879请用一个可复制的例子更新你的帖子
grep(new_ID, colnames(dat))