R 合并两个数据帧和vlookup

R 合并两个数据帧和vlookup,r,R,我有两个数据帧(df1,df2)。我希望将它们结合起来,这样,如果特定样本ID的基因存在于df1中,我希望它在df2中相应的匹配基因列和样本ID行中被分配“1”(存在)。如果基因不存在于df1中,它将自动填充df2,并带有“0”(缺失),如下面的结果数据框所示。非常感谢您在这方面的帮助。提前感谢您 df1 df2 结果 +-----+---+---+---+---+ | ID | A | B | C | D | +-----+---+---+---+---+ | 100 | 1 | 1 | 0

我有两个数据帧(df1,df2)。我希望将它们结合起来,这样,如果特定样本ID的基因存在于df1中,我希望它在df2中相应的匹配基因列和样本ID行中被分配“1”(存在)。如果基因不存在于df1中,它将自动填充df2,并带有“0”(缺失),如下面的结果数据框所示。非常感谢您在这方面的帮助。提前感谢您

df1

df2

结果

+-----+---+---+---+---+
| ID  | A | B | C | D |
+-----+---+---+---+---+
| 100 | 1 | 1 | 0 | 0 |
| 101 | 0 | 1 | 0 | 0 |
| 102 | 0 | 0 | 0 | 0 |
| 103 | 0 | 1 | 0 | 0 |
| 104 | 0 | 0 | 0 | 0 |
| 105 | 0 | 0 | 1 | 0 |
| 106 | 0 | 0 | 0 | 0 |
+-----+---+---+---+---+

不需要合并。
df1
的简单长到宽转换就足够了:
df1%>%mutate(n=1)%%>%spread(Gene.name,n,fill=0)
reforme2::dcast(transform(df1,n=1),ID~Gene.name,fill=0)
。有关更多选项,请参见dupe target链接。注意:我经常看到以这种方式显示的示例数据。通常这不是一种好方法,因为我们无法轻松地将数据复制粘贴到R终端(这需要我们去掉多余和不必要的“边框字符”)。有没有一种特殊的工具可以以这种方式输出数据?我希望你不要花时间手工格式化数据?在这种情况下,请不要:-)谢谢毛里兹,非常感谢。抱歉,我不清楚,但我想包括df2的原因是,并非所有样本都有与之相关的基因。例如,df1没有提到Sample 106,那么我如何确保在我的输出中,样本106对于所有不同的基因都得到“0”?关于你的第二个问题,不幸的是,我接收原始数据的方式是,我必须“手工”格式化。基本上,我得到了“基因组变体”的列表“如果样本中没有列出某一特定基因,那么假设该基因中不存在任何变异,这是不正常的吗?”?有更好的方法吗?关于你的第一个问题,我会用
complete
来填写缺失的级别<代码>基因完成百分比(Gene.name,ID)%%>%扩散(Gene.name,n,fill=0);根据需要调整
基因
ID
。无需合并。对
df1
进行简单的长到宽转换就足够了:
df1%>%突变(n=1)%%>%扩散(Gene.name,n,fill=0)
restrape2::dcast(transform(df1,n=1),ID~Gene.name,fill=0)
。请参阅dupe target链接以了解更多选项。PS和稍微偏离主题的说明:我经常看到以这种方式显示的示例数据。一般来说,这不是一个好方法,因为我们无法轻松地将数据复制粘贴到R终端(它要求我们去掉多余和不必要的“边框字符”)。是否有一种特殊的工具以这种方式输出数据?我希望您不要花时间手动格式化这样的数据?在这种情况下,请不要:-)谢谢毛里塔尼亚,非常感谢。抱歉,我不清楚,但我想包括df2的原因是,并非所有样本都有与之相关的基因。例如,df1没有提到样本106,那么我如何确保在我的输出中样本106对于所有不同的基因都得到一个“0”呢?关于你的第二个问题,不幸的是,我接收原始数据的方式是,我必须“手工”格式化。基本上,我得到了一个异常的“基因组变异”列表,如果样本中没有列出特定的基因,那么假设该基因中不存在变异?有更好的方法吗?关于你的第一个问题,我会用
complete
来填写缺失的级别<代码>基因完成百分比(Gene.name,ID)%%>%扩散(Gene.name,n,fill=0);根据需要调整基因和ID。
+-----+---+---+---+---+
| ID  | A | B | C | D |
+-----+---+---+---+---+
| 100 |   |   |   |   |
| 101 |   |   |   |   |
| 102 |   |   |   |   |
| 103 |   |   |   |   |
| 104 |   |   |   |   |
| 105 |   |   |   |   |
| 106 |   |   |   |   |
+-----+---+---+---+---+
+-----+---+---+---+---+
| ID  | A | B | C | D |
+-----+---+---+---+---+
| 100 | 1 | 1 | 0 | 0 |
| 101 | 0 | 1 | 0 | 0 |
| 102 | 0 | 0 | 0 | 0 |
| 103 | 0 | 1 | 0 | 0 |
| 104 | 0 | 0 | 0 | 0 |
| 105 | 0 | 0 | 1 | 0 |
| 106 | 0 | 0 | 0 | 0 |
+-----+---+---+---+---+