求R中多个向量的公共元素索引
从其他堆栈溢出帖子中,我发现以下代码可用于查找多个向量(例如a、b)之间的公共值: 我想不出一个从向量中得到公共值索引的好方法。任何帮助都将不胜感激 以下是所需输入和输出的示例:求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 <- 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