如何创建一个函数,在R中的两个向量中查找相等值的数目

如何创建一个函数,在R中的两个向量中查找相等值的数目,r,R,向量a=10:15,向量b=13:17,那么我如何创建一个函数来告诉我相等值的数目呢。结果是3。(因为相同的值是13,14,15)。谢谢你foo如果a和b是唯一的,你可以使用重复的和总和: foo <- function(x, y) length(intersect(x, y)) a <- 10:15 b <- 13:17 foo(a, b) # [1] 3 sum(duplicated(c(a,b))) #[1] 3 sum(duplicated(c(unique(a

向量a=10:15,向量b=13:17,那么我如何创建一个函数来告诉我相等值的数目呢。结果是3。(因为相同的值是13,14,15)。谢谢你

foo如果a和b是唯一的
,你可以使用重复的和总和:

foo <- function(x, y) length(intersect(x, y)) 

a <- 10:15
b <- 13:17
foo(a, b)
# [1] 3
sum(duplicated(c(a,b)))
#[1] 3
sum(duplicated(c(unique(a),unique(b))))
#[1] 3
否则,请另外使用
unique

sum(duplicated(c(a,b)))
#[1] 3
sum(duplicated(c(unique(a),unique(b))))
#[1] 3

您可以在%中使用
%:

a = 10:15
b = 13:17

length_equal <- function(x, y) sum(unique(x) %in% unique(y))
length_equal(a, b)
#[1] 3
a=10:15
b=13:17
长度等于另一种方式:

a <- 10:15
b <- 13:17

my_func <- function(a, b) length(a) - length(setdiff(a, b))
my_func(a, b)
#[1] 3
a尝试:
length(相交(a,b))