我有如下两个数据集:
df1:
| 基因ID|p值|
| --------------|--------------|
| ENSG0000000003|零点零四|
| ENSG00000000419|零点零四|
| ENSG00000111780|零点零零零四|
| ENSG00000093100|0.00004|
df2:
| 基因ID|基因名|
| --------------|--------------|
| ENSG0000000003|TSPAN6|
| ENSG00000000419|DPM1|
| ENSG00000111780||
| ENSG00000093100||
我想通过gene_id列连接两个 Dataframe ,并用相应的gene_id填充gene_name空白。
我希望得到的结果如下:
| 基因ID|p值|基因名|
| --------------|--------------|--------------|
| ENSG0000000003|零点零四|TSPAN6|
| ENSG00000000419|零点零四|DPM1|
| ENSG00000111780|零点零零零四|ENSG00000111780|
| ENSG00000093100|0.00004|ENSG00000093100|
我如何在R中最好使用dplyr(或tidyverse)得到上述结果?
我尝试使用left_join,但在gene_name中有未填充的空格。
new_df <- left_join(df1, df2, by = "gene_id")
2条答案
按热度按时间kse8i1jr1#
在你做了连接之后,就用这个。它将检查空值并将该行的
gene_id
放入gene_name
中:9gm1akwq2#
Tidyverse解决方案:我们可以在用NA替换空字符后使用
coalesce
,也可以使用replace
。示例数据
示例解决方案