【发布时间】:2013-08-27 16:35:51
【问题描述】:
我有两个整数向量列表,分别命名为GroundStates(长度=3)和naMat(长度=4)。
我想按元素相交列表,这意味着我希望GroundStates 中的每个向量与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 循环,但我想知道是否有更优雅的方式来做到这一点?
【问题讨论】:
-
你的意思是像
intersect(unlist(GroundStates), unlist(naMat))这样的东西吗? -
你能发布一个示例数据集吗?看起来你确实让这件事变得比它需要的更复杂。