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”自动计算每个“项目数量”的时间。脚本中应该修改什么?太多了。你能用期望的结果修改这个问题吗?