Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
求R中多个向量的公共元素索引_R_Vector - Fatal编程技术网

求R中多个向量的公共元素索引

求R中多个向量的公共元素索引,r,vector,R,Vector,从其他堆栈溢出帖子中,我发现以下代码可用于查找多个向量(例如a、b)之间的公共值: 我想不出一个从向量中得到公共值索引的好方法。任何帮助都将不胜感激 以下是所需输入和输出的示例: a <- c(5,2) b <- c(5,3) d <- c(4,5) a不清楚向量是否具有相同的长度。请给出一个小的可复制示例和预期输出如果向量长度不相等,该代码是否有效? a <- c(5,2) b <- c(5,3) d <- c(4,5) a <- c(5,2);

从其他堆栈溢出帖子中,我发现以下代码可用于查找多个向量(例如a、b)之间的公共值:

我想不出一个从向量中得到公共值索引的好方法。任何帮助都将不胜感激

以下是所需输入和输出的示例:

a <- c(5,2)
b <- c(5,3)
d <- c(4,5)

a不清楚向量是否具有相同的长度。请给出一个小的可复制示例和预期输出如果向量长度不相等,该代码是否有效?
a <- c(5,2)
b <- c(5,3)
d <- c(4,5)
a <- c(5,2); b <- c(5,3); d <- c(4,5)
mylist = list(a = a, b = b, d = d)  #OR  mylist = mget(c("a", "b", "d"))
common_values = Reduce(intersect, mylist)
lapply(mylist, function(x) which(x %in% common_values))
#$a
#[1] 1

#$b
#[1] 1

#$d
#[1] 2
a = 1:3
b = 2:4
d = c(2, 7, 3, 5)
mylist = mget(c("a", "b", "d"))
common_values = Reduce(intersect, mylist)
lapply(mylist, function(x)
    sapply(setNames(common_values, common_values), function(y)
        which(x %in% y)))
#$a
#2 3 
#2 3 

#$b
#2 3 
#1 2 

#$d
#2 3 
#1 3