1

我有两个整数向量列表,分别命名为GroundStates(length=3) 和naMat(length=4)。我想逐元素地与列表相交,这意味着我希望每个向量 inGroundStates与 in中的每个向量相交naMat

我尝试使用嵌套lapply()

GS_conut_EP<-lapply(1:3, function(i) intersect((GroundStates[i]),lapply(1:4,function(x) as.integer(unlist(naMat[x])))))

这产生了一个长度为 3 的列表,但所有三个元素都是空的。

我也尝试过使用Reduce()

GS_conut_EP<-Reduce(intersect, c(GroundStates,naMat))

这也产生了一个空向量。

我确实知道列表之间存在相交,因为我尝试调用unlist()每个列表中的一个向量并将它们相交。

当然,我总是可以使用 for 循环,但我想知道是否有更优雅的方法呢?

4

1 回答 1

3

如果您希望将输出作为列表列表,您可以执行以下操作:

lapply(GroundStates, function(x) lapply(naMat, function(y) intersect(x,y)))
于 2013-08-27T16:45:58.850 回答