我对如何执行这种形式的数据整理有点困惑,因为我是 R 编码的新手。我的目标是将 subjectID 信息与这个大数据集相匹配,该数据集的行数比 subjectID 数据的行数多。这是因为大数据与一组受试者有多个会话。例如,主题 A 的数据的行名称为 SubjectA-01、SubjectA-02 等。
我的目标是将 SubjectID 名称与大数据集匹配,以便我可以添加新列(性别、年龄、BMI 等)作为与数据相关的列。
我们可以称这个数据帧为 SubjectID <-
主题 ID | 性别 | 年龄 |
---|---|---|
主题A | M | 32 |
主题B | F | 16 |
我想用这个信息来匹配这个矩阵中的开始关键字。让我们将此数据集称为 BioResults。
样本ID | 验血结果 |
---|---|
主题A-01 | 2.34 |
主题A-02 | 2.55 |
主题B-12 | 3.56 |
我的目标是制作一个如下所示的新数据集:
样本ID | 验血结果 | 性别 | 年龄 |
---|---|---|---|
主题A-01 | 2.34 | M | 32 |
主题A-02 | 2.55 | M | 32 |
主题B-12 | 3.56 | F | 16 |
实现这一目标的最佳方法是什么?我很感激任何帮助,因为我对这种编码语言还是陌生的。谢谢!
答案 0 :(得分:0)
这行得通吗:
library(dplyr)
library(stringr)
BioResults %>% mutate(ID = str_remove(SampleID, '-..')) %>%
inner_join(subjectID, by = c('ID' = 'SubjectID')) %>% select(-ID)
SampleID Blood.Result Sex Age
1 SubjectA-01 2.34 M 32
2 SubjectA-02 2.55 M 32
3 SubjectB-12 3.56 F 16
使用的数据:
BioResults
SampleID Blood.Result
1 SubjectA-01 2.34
2 SubjectA-02 2.55
3 SubjectB-12 3.56
subjectID
SubjectID Sex Age
1 SubjectA M 32
2 SubjectB F 16