我定义了以下函数,其中需要两个DataFrame,DF_TAGS_LIST和DF_epc_list。两个数据框都有一个行数不同的列。我想搜索在DF_epc_list每个值DF_TAGS_LIST,如果发现,将其存储在另一个数据帧DF_TAGS_LIST的比较具有不同行数的数据帧的值
一个例子:DF_epc_list的
TAGS_LIST
3036029B539869100000000B
3036029B537663000000002A
3036029B5398694000000009
3036029B539869400000000C
3036029B5398690000000006
3036029B5398692000000007
其中的一个例子:
EPC
3036029B539869100000000B
3036029B537663000000002A
3036029B5398690000000006
3036029B5398692000000007
3036029B5398691000000006
3036029B5376630000000034
3036029B53986940000000WF
3036029B5398694000000454
3036029B5398690000000234
3036029B53986920000000FG
在这情况下,我想要一个数据帧输出具有以下值:
FOUND_TAGS
3036029B5398690000000006
3036029B5398692000000007
3036029B539869100000000B
3036029B537663000000002A
我的功能是:
FOUND_COMPARE_TAGS<-function(DF_TAGS_LIST, DF_epc_list){
DF_epc_list<-toString(DF_epc_list)
DF_TAGS_LIST<-toString(DF_TAGS_LIST)
DF_found_epc_tags <- data.frame(DF_found_epc_tags=intersect(DF_TAGS_LIST$DF_TAGS_LIST, DF_epc_list$DF_epc_list)); setdiff(union(DF_TAGS_LIST$DF_TAGS_LIST, DF_epc_list$DF_epc_list), DF_found_epc_tags$DF_found_epc_tags)
#DF_found_epc_tags <- data.frame(DF_found_epc_tags = DF_TAGS_LIST[unique(na.omit(match(DF_epc_list$DF_epc_list, DF_TAGS_LIST$DF_TAGS_LIST))),])
return(DF_found_epc_tags)
}
我现在返回一个有两列的空数据框。只有R中最近编程
不同之处在于'intersect'是一个集合操作,默认情况下返回相交结果,其中no重复。 – Arun
@阿伦,是的。实际上,我现在只是重新阅读他们尝试的解决方案,看看我是否能更好地理解他们实际寻找的结果。我看到'intersect'已经在他们现在的功能中。 – A5C1D2H2I1M1N2O1R2T1
基本上,我想在DF_TAGS_LIST中找到DF_TAGS_LIST的值,并且当我找到匹配项时,我想将该值保存在另一个数据框中。 – Alex