数据表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 列。我该怎么做?
任何帮助我将非常感激。
你可以
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