根据其中一列中的元素组合表格[重复]

问题描述 投票:0回答:1

这有点难以解释,所以我将在下面展示一个示例,但我基本上有两个表,我想通过匹配另一个表的行中的内容来创建一个带有新列的新表。我还想指出,这些表非常大(10,000 多行)。有没有办法在 R 中做到这一点?

假设这些是我拥有的桌子

Table 1-sample
obs      code   genSym   
14       E444     5     
28       3330     6        
33       7555     9      
35       E777     10     

Table 2-description
row_id  code   type   
1       E444    INS             
3       7555    MMS      
5       5679    SMO 
6       A678    LLX 
7       A900    IRR
8       3330    DEL
9       4545    SLL  
10      E777    FOO

我希望它看起来像这样

obs      code   genSym  type 
14       E444     5      INS
28       3330     6      DEL  
33       7555     9      MMS
35       E777     10     FOO 

我的第一个表是我的示例表,第二个表是我的描述表,其中包含代码含义的所有描述。我想根据第一个表中的代码来匹配第一个表中的“类型”。

r merge
1个回答
0
投票

您需要进行左连接,这可以通过多种方式完成。这是使用 tidyverse 的一种方法:

library(tidyverse)

table_1 = tibble(
  obs = c(14, 28, 33, 35),
  code = c("E444", "3330", "7555", "E777"),
  genSym = c(5, 6, 9, 10)
)

table_2 = tibble(
  code = c("E444", "7555", "5679", "A678", "A900", "3330", "4545", "E777"),
  type =c("INS", "MMS", "SMO", "LLX", "IRR", "DEL", "SLL", "FOO")
)

table_1 %>% left_join(table_2)
Joining, by = "code"
# A tibble: 4 x 4
    obs code  genSym type 
  <dbl> <chr>  <dbl> <chr>
1    14 E444       5 INS  
2    28 3330       6 DEL  
3    33 7555       9 MMS  
4    35 E777      10 FOO 
© www.soinside.com 2019 - 2024. All rights reserved.