根据其中一列的元素组合表格

Combining tables based on elements from one of the columns

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

假设这些是我拥有的 table

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 

我的第一个 table 是我的示例 table,第二个 table 是我的描述 table,其中包含对代码含义的所有描述。我想根据第一个 table 中的代码匹配第一个 table 中的“类型”。感谢您的帮助!

你需要做一个左连接,这可以完成multiple ways。这是一种使用 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