R 如何从代码中查找值并在此基础上创建一些新列

R 如何从代码中查找值并在此基础上创建一些新列,r,match,lookup,R,Match,Lookup,我想从数据库中查找值,并在文件中创建一些新列 实际上我有一个这样的文件 promo code item stok sale1 100 a 200 sale2 101 b 300 sale3 102 c 100 sale4 103 d 50 code item1 code_item1 amount_item1 item2 code_item2 amount_item2 100 a1 1001 2 a2

我想从数据库中查找值,并在文件中创建一些新列 实际上我有一个这样的文件

promo code item stok
sale1  100   a   200
sale2  101   b   300
sale3  102   c   100
sale4  103   d    50
code item1 code_item1 amount_item1 item2 code_item2 amount_item2 
100   a1     1001          2        a2     1002          1
102   a2     1002          1        a3     1003          1
数据库是这样的

promo code item stok
sale1  100   a   200
sale2  101   b   300
sale3  102   c   100
sale4  103   d    50
code item1 code_item1 amount_item1 item2 code_item2 amount_item2 
100   a1     1001          2        a2     1002          1
102   a2     1002          1        a3     1003          1
然后我想把我的第一个文件添加到数据库中的几个列中

promo code item stok item1 code_item1 amount_item1 item2 code_item2 amount_item2
sale1  100   a   200   a1     1001          400        a2     1002          200
sale2  101   b   300
sale3  102   c   100   a2     1002          100        a3     1003          100
sale4  103   d    50

如何执行此操作?

您可以从
dplyr
使用
left\u join()

library(dplyr)

my_df <- data.frame(promo = c("sale1", "sale2", "sale3", "sale4"), code = c(100, 101, 102, 103), item = c("a", "b", "c", "d"), stok = c(200, 300, 100, 50))
db_df <- data.frame(code = c(100, 102), item1 = c("a1", "a2"), code_item1 = c(1001, 1002), amount_item1 = c(2,1), item2 = c("a2", "a3"), code_item2 = c(1002, 1003), amount_item2 = c(1,1))

result_df <- left_join(my_df, db_df, by = c("code" = "code"))
result_df

  promo code item stok item1 code_item1 amount_item1 item2 code_item2 amount_item2
1 sale1  100    a  200    a1       1001            2    a2       1002            1
2 sale2  101    b  300  <NA>         NA           NA  <NA>         NA           NA
3 sale3  102    c  100    a2       1002            1    a3       1003            1
4 sale4  103    d   50  <NA>         NA           NA  <NA>         NA           NA
> 
库(dplyr)

my_df是的,
dplyr
是一个很好的选择,但是我总是在这种情况下使用
merge()


my_df thanx@sven谢谢你的回答。昨天我忘了更新我的问题了。我想在填充新的合并表之前,先用“stok”自动计算每个“项目数量”的时间。脚本中应该修改什么?谢谢你的回答。昨天我忘了更新我的问题了。我想在填充新的合并表之前,先用“stok”自动计算每个“项目数量”的时间。脚本中应该修改什么?太多了。你能用期望的结果修改这个问题吗?