R 如何计算列表和另一个文件的每列中出现的字符串数?

R 如何计算列表和另一个文件的每列中出现的字符串数?,r,string-comparison,overlap,R,String Comparison,Overlap,我正在寻找一种方法(最好但不一定在R中)来查找参考列表中的项目在一系列列表中出现的次数。我需要知道参考列表和其他列表之间每次比较的重叠程度 因此,我有一个列表,其中包含一系列字符串,如下所示(前4行): 我们称之为ListA 然后我有一个制表符分隔的文本文件(file2),其中有几列包含类似的字符串。每列都是一个类似的独立列表: A25325 A5634 A765436 A232 A3255 A35674 A5353 A474 A3453 A632 A5464

我正在寻找一种方法(最好但不一定在R中)来查找参考列表中的项目在一系列列表中出现的次数。我需要知道参考列表和其他列表之间每次比较的重叠程度

因此,我有一个列表,其中包含一系列字符串,如下所示(前4行):

我们称之为ListA

然后我有一个制表符分隔的文本文件(file2),其中有几列包含类似的字符串。每列都是一个类似的独立列表:

A25325  A5634   A765436 A232
A3255   A35674  A5353   A474
A3453   A632        A5464   A863
A5543   A656        A8768   A684
我知道shell中有几种方法可以检查两个列表之间的重叠,但我不知道如何说:以listA为例,计算另一个文件中的每一列出现listA字符串的次数。对于每个列输出,在列和列表中找到的字符串数。 因此,问题是如何迭代文本文件中的列并输出重叠量

在上面的示例中,输出为:1 0 因为A3255出现在列表A和文件2的第1列中 输出格式并不重要,只是通过某种方式知道每个文件中发生了多少重叠

谢谢
抱歉,如果问题重复,我已搜索但尚未看到

如果将制表符分隔的文本文件读入简单的data.frame,则可以使用
apply()
函数:

listA <- c("A2345", "A3545", "A643636", "A3255")
listB <- data.frame(b1 = c("A25325", "A3255", "A3453", "A5543"),
                b2 = c("A5634", "A35674", "A632", "A656"),
                b3 = c("A765436", "A5353", "A5464", "A8768"),
                b4= c("A232", "A474", "A863", "A684"))

listB
#       b1     b2      b3   b4
# 1 A25325  A5634 A765436 A232
# 2  A3255 A35674   A5353 A474
# 3  A3453   A632   A5464 A863
# 4  A5543   A656   A8768 A684
apply()函数中的参数
MARGIN=2
将在列上迭代搜索。您可以在这里查看:

listA <- c("A2345", "A3545", "A643636", "A3255")
listB <- data.frame(b1 = c("A25325", "A3255", "A3453", "A5543"),
                b2 = c("A5634", "A35674", "A632", "A656"),
                b3 = c("A765436", "A5353", "A5464", "A8768"),
                b4= c("A232", "A474", "A863", "A684"))

listB
#       b1     b2      b3   b4
# 1 A25325  A5634 A765436 A232
# 2  A3255 A35674   A5353 A474
# 3  A3453   A632   A5464 A863
# 4  A5543   A656   A8768 A684
apply(listB, 2, function(x) {sum(x %in% listA)})
b1 b2 b3 b4 
 1  0  0  0