数据表A左连接数据表B,如何将B的所有列名包含在结果中?

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

数据表A左连接数据表B,如何将B的所有列名包含到结果中?

table_detail_s 是:

>table_detail_s<- data.table(table_name = 'dtA',col_name = c("lc","hs","address_type","address_type_mc","hjry"),
           col_name_raw = c("lc","hs","address_type","address_type","hjry")
           )
> table_detail_s
table_name        col_name col_name_raw
       <char>          <char>       <char>
1:        dtA              lc           lc
2:        dtA              hs           hs
3:        dtA    address_type address_type
4:        dtA address_type_mc address_type
5:        dtA            hjry         hjry

表 std_mc_col_s 是:

>std_mc_col_s <- data.table(table_name_s = 'dtA',col_name_filter = 'address_type')
>std_mc_col_s
   table_name col_name_raw
       <char>       <char>
1:        dtA address_type

然后table_detail_s左连接std_mc_cols_s:

> std_mc_col_s[table_detail_s,
+            on = .(table_name_s == table_name ,
+                   col_name_filter == col_name)]
   table_name_s col_name_filter col_name_raw
         <char>          <char>       <char>
1:          dtA              lc           lc
2:          dtA              hs           hs
3:          dtA    address_type address_type
4:          dtA address_type_mc address_type
5:          dtA            hjry         hjry

我很困惑

col_name_filter
列的内容除了
address_type
之外还包含其他值?另外,我想在结果中包含
table_name_s
in 列。我该怎么做? 任何帮助我将非常感激。

r data.table left-join
1个回答
0
投票

你可以

merge

> merge(std_mc_col_s, table_detail_s, by.x='table_name_s', by.y='table_name')
Key: <table_name_s>
   table_name_s col_name_filter        col_name col_name_raw
         <char>          <char>          <char>       <char>
1:          dtA    address_type              lc           lc
2:          dtA    address_type              hs           hs
3:          dtA    address_type    address_type address_type
4:          dtA    address_type address_type_mc address_type
5:          dtA    address_type            hjry         hjry
© www.soinside.com 2019 - 2024. All rights reserved.