我需要使用以下三列中列出的产品代码search_key
:
search_key <- data.frame('product' = c('Apple', 'Apple', 'Apple', 'Banana',
'Banana', 'Banana', 'Mango', 'Mango'),
'code' = c('123','000','232', '567', '222', '434',
'999', '909'))
标识以下产品中的特定产品product_list
:
product_list <- data.frame('code_1' = c('123','567','999'),
'code_2' = c('000', '222', NA),
'code_3' = c('232', NA, NA),
'price' = c('1.29', '2.29', '3.24'))
产生以下结果final_list
:
final_list <- data.frame('code_1' = c('123','567','999'),
'code_2' = c('000', '222', NA),
'code_3' = c('232', NA, NA),
'price' = c('1.29', '2.29', '3.24'),
'product' = c('Apple', 'Banana', 'Mango'))
我可以使用什么功能来product_list
使用中的代码进行系统搜索,search_key
以识别并在其中创建“产品”列final_list
?提前致谢!
这是给您的一种方法。看到您的最终结果,我想您要重新安排product_list
。我使用melt()
并以长格式转换了您的数据。然后,合并search_key
与code
.The最终步骤是通过做spread()
在tidyr
封装; 该函数将长格式数据转换为宽格式数据。
library(magrittr)
library(reshape2)
library(tidyr)
melt(product_list, id.var = "price", value.name = "code") %>%
merge(search_key, by = "code") %>%
spread(key = "variable", value = "code")
# product price code_1 code_2 code_3
#1 Apple 1.29 123 000 232
#2 Banana 2.29 567 222 <NA>
#3 Mango 3.24 999 <NA> <NA>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句