gpt4 book ai didi

r - 匹配 R 列表中的产品

转载 作者:行者123 更新时间:2023-12-02 16:14:30 25 4
gpt4 key购买 nike

我必须对如下产品列表进行分类:

product_list<-data.frame(product=c('banana from ecuador 1 unit', 'argentinian meat (1 kg) cow','chicken breast','noodles','salad','chicken salad with egg'))

基于这个向量的每个元素中包含的单词:

product_to_match<-c('cow meat','deer meat','cow milk','chicken breast','chicken egg salad','anana')

我必须将每个产品 product_to_match 的所有单词匹配到数据框的每个元素中。

我不确定最好的方法是什么,以便将每个产品分类到一个新的列中,以便有这样的东西:

product_list<-data.frame(product=c('banana from ecuador 1 unit', 'argentinian meat (1 kg) 
cow','chicken breast','noodles','salad','chicken salad with egg'),class=c(NA,'cow meat','chicken
breast',NA,NA,'chicken egg salad'))

请注意,“anana”与“banana”不匹配,尽管字符包含在字符串中而不是单词中。我不确定该怎么做。

谢谢。

最佳答案

也许这会有所帮助

q <- outer(
strsplit(product_to_match, "\\s+"),
strsplit(product_list$product, "\\s+"),
FUN = Vectorize(function(x, y) all(x %in% y))
)
product_list$class <- product_to_match[replace(colSums(q * row(q)), colSums(q) == 0, NA)]

这样

> product_list
product class
1 banana from ecuador 1 unit <NA>
2 argentinian meat (1 kg) cow cow meat
3 chicken breast chicken breast
4 noodles <NA>
5 salad <NA>
6 chicken salad with egg chicken egg salad

关于r - 匹配 R 列表中的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67153531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com