R函数在两个单独的数据帧中查找匹配项?
我是R编程的新手,所以我搜索了很多东西,但找不到我想要的东西 我有两个数据帧,比如 数据帧1:R函数在两个单独的数据帧中查找匹配项?,r,dataframe,bioinformatics,bioconductor,R,Dataframe,Bioinformatics,Bioconductor,我是R编程的新手,所以我搜索了很多东西,但找不到我想要的东西 我有两个数据帧,比如 数据帧1: Accession `Gene Symbol` `siCON-1` `siCON-2` `siCON-3` `siTR-1` `siTR-2` `siTR-3` `log2(siTR/s~ p_val `-log10(t.test si~ <chr> <chr> <dbl> <dbl> <
Accession `Gene Symbol` `siCON-1` `siCON-2` `siCON-3` `siTR-1` `siTR-2` `siTR-3` `log2(siTR/s~ p_val `-log10(t.test si~
<chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 Q14258 TRIM25 2283. 2570. 2749. 489 498. 480. -2.37 1.14e-4 3.94
2 Q9P035 PTPLAD1; HACD3 1080. 857. 1060. 338. 439. 264 -1.52 1.74e-3 2.76
3 Q9NP99 TREM1 45.7 NA 65.3 55 32.7 3.2 -0.873 3.10e-1 0.508
4 P35226 BMI1; COMMD3-~ 46.3 42.6 36.1 12.3 23.7 12.6 -1.36 6.03e-3 2.22
5 Q14117 DPYS 44.9 NA 73.1 51.7 36.9 0.8 -0.985 2.79e-1 0.554
6 Q6IAN0 DHRS7B 173. 149. 213. 92.3 73.7 62.6 -1.22 7.77e-3 2.11
我只想搜索表2中表1中的每个登录ID,如果匹配,我想将表2中的V2和V4复制到表1中
我该怎么做?提前谢谢
编辑:很抱歉造成混淆,Accession是用于匹配的,V1是第二个数据帧中的匹配
我想将“Q14258”作为一个示例,从中的第一个数据帧与第二个数据帧V1进行比较,如果存在匹配,我想从第二个数据帧获得V2和V4,并在数据帧1中添加新列。我希望这件事能澄清
Edit2:我用过这个代码
匹配当您想要组合两个数据帧时,那么您想要使用一个连接
我做了一些示例数据,因为我不确定我是否理解您在问题中的数据。我知道df1中的加入
与df2中的V1
相同
library(tidyverse)
df1 <- tribble(
~Accession, ~GeneSymbol,
'Q1', 'TRIM25',
'Q2', 'PTPLAD1',
'Q3', 'TREM1' )
df2 <- tribble(
~V1, ~V2,
'Q1', 'R-HSA-109581',
'Q2', 'R-HSA-109582',
'Q4', 'R-HSA-109583',
'Q5', 'R-HSA-109584',
'Q6', 'R-HSA-109585' )
)
#一个tible:3 x 3
注册号V2
1 Q1 TRIM25 R-HSA-109581
2 Q2 PTPLAD1 R-HSA-109582
3第3季度1不适用
还有其他类型的联接。查看哈德利·威克姆的书中的信息
我在数据帧2中没有看到登录ID。请提供示例数据的预期输出,并解释如何识别匹配项。感谢@Limey,我想将“Q14258”作为示例从中的第一个数据帧与第二个数据帧V1进行比较,如果存在匹配项,我想从第二个数据帧获得V2和V4,并在数据帧1中添加新列。我希望这件事能澄清。ThankQ14258
在数据框2中的任何位置都没有出现,因此不可能进行匹配。Thank@Limey我没有将所有数据放在这里,它位于数据框顶部,由大约600k的数据组成。能告诉我你是怎么找的吗?非常感谢@Aaron,这是一个很好的解释。同时也感谢你们为我提供了这本书。我肯定会更详细地讨论,没问题。如果答案解决了你的问题,你会接受吗?
[1] 87059 130058 126612 50691 86417 97429 80338 NA NA 34876 132613 138390 86681 48874 NA NA NA 121653 NA
[20] 83210 NA NA 22832 98354 104386 80531 11963 338 NA 58060 50032 12127 133036 11434 111307 26229 NA 89105
[39] 107669 2329 57826 NA 12101 35659 NA 100915 NA 119519 NA NA 92556 128938 13341 130104 133727 103605 NA
[58] 105145 124370 27343 NA 100357 47092 93135 39138 66942 NA 23662 116234 NA 85757 NA 125647 NA NA NA
[77] 59705 NA 109960 44700 135309 121942 NA 74508 NA NA 111882 15365 94138 122808 137613 58407 28641 NA 110505
[96] 76572 NA 104295 NA 130022 71937 63190 101249 113658 133776 36281 NA 61907 56843 NA 94265 24763 119085 81442
[115] NA NA 89343 NA NA 100597 NA 4782 131283 88704 NA NA 67450 57507 118512 10851 NA 12182 58482
library(tidyverse)
df1 <- tribble(
~Accession, ~GeneSymbol,
'Q1', 'TRIM25',
'Q2', 'PTPLAD1',
'Q3', 'TREM1' )
df2 <- tribble(
~V1, ~V2,
'Q1', 'R-HSA-109581',
'Q2', 'R-HSA-109582',
'Q4', 'R-HSA-109583',
'Q5', 'R-HSA-109584',
'Q6', 'R-HSA-109585' )
)
df1 %>%
inner_join(df2, by=c("Accession" = "V1"))
# A tibble: 2 x 3
Accession GeneSymbol V2
<chr> <chr> <chr>
1 Q1 TRIM25 R-HSA-109581
2 Q2 PTPLAD1 R-HSA-109582
df1 %>%
left_join(df2, by=c("Accession" = "V1"))
# A tibble: 3 x 3
Accession GeneSymbol V2
<chr> <chr> <chr>
1 Q1 TRIM25 R-HSA-109581
2 Q2 PTPLAD1 R-HSA-109582
3 Q3 TREM1 NA