将一行中的数据匹配到另一个数据集,然后将第一个数据中的列添加到另一个数据集

时间:2021-07-07 18:28:58

标签: r dataframe data-wrangling

*编辑,我查看了 StackOverflow 中的其他页面,虽然那里有很多好的资源,但我似乎仍然不了解它们的情况,对于这种情况,我试图根据名称匹配特定行subjectIDs 以便我可以创建与添加的信息匹配的列。任何有关方法的建议将不胜感激。

我对如何执行这种形式的数据整理有点困惑,因为我是 R 编码的新手。我的目标是将 subjectID 信息与这个大数据集相匹配,该数据集的行数比 subjectID 数据的行数多。这是因为大数据与一组受试者有多个会话。例如,主题 A 的数据的行名称为 SubjectA-01、SubjectA-02、SubjectB-1202、SubjectB-W2D1 等。

我的目标是将 SubjectID 名称与大数据集匹配,以便我可以添加新列(性别、年龄、BMI 等)作为与数据相关的列。

我们可以将此数据框称为 SubjectInfo

<头>
主题 ID 性别 年龄
主题A M 32
主题C F 23
主题B F 16

我想用这个信息来匹配这个矩阵中的开始关键字。 我们将此数据集称为 BioResults。

<头>
样本ID 验血结果
主题C-GH21 2.22
主题A-01 2.34
主题A-02 2.55
主题B-12 3.56

我的目标是制作一个如下所示的新数据集:

<头>
样本ID 验血结果 性别 年龄
主题C-GH21 2.22 F 23
主题A-01 2.34 M 32
主题A-0122 2.55 M 32
主题B-Q32 3.56 F 16

这是我尝试这个的第一步。首先删除主题名称上的数字和字母,使两个主题名称相同。

BioResults$SampleID <- gsub("-.*", "", BioResults$SampleID)

但是,我现在似乎仍然难以匹配来自 SubjectInfo$SampleID 的数据和 BioResults$SampleID 的数据,因此我可以根据与主题匹配的行。

如果您对此有任何帮助,我将不胜感激。我确实看到其他 Stack Overflow 讨论使用 left_join()、right_join() 等进行数据操作,但我似乎仍然对这组代码和方法感到困惑。

谢谢!

0 个答案:

没有答案