Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.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_Lapply - Fatal编程技术网

r按元素相交于两个列表

r按元素相交于两个列表,r,lapply,R,Lapply,我有两个整数向量列表,分别命名为GroundStates(长度=3)和naMat(长度=4)。 我希望列表元素相交,这意味着我希望GroundStates中的每个向量与naMat中的每个向量相交 我尝试使用嵌套的lappy(): 这也产生了一个空向量 我确实知道列表之间有交叉点,因为我尝试对每个列表中的一个向量调用unlist(),并将它们交叉 当然,我总是可以使用for循环,但我想知道是否有更简单的方法来实现这一点?如果希望输出为列表列表,可以执行以下操作: lapply(GroundStat

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

我尝试使用嵌套的
lappy()

这也产生了一个空向量

我确实知道列表之间有交叉点,因为我尝试对每个列表中的一个向量调用
unlist()
,并将它们交叉


当然,我总是可以使用for循环,但我想知道是否有更简单的方法来实现这一点?

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

lapply(GroundStates, function(x) lapply(naMat, function(y) intersect(x,y)))

你的意思是像
intersect(unlist(GroundStates),unlist(naMat))
?你能发布一个示例数据集吗?显然,您正在使它变得比需要的更复杂。@user1614062请注意,这将有“重复项”,即设置
L[[i]][[j]]
L[[j]][[i]]
(where
L@Ferdinand.kraft谢谢你告诉我这一点。尽管我在报告中没有看到重复的output@user1614062它们可能是无序的,但它们将在那里,因为
intersect(x,y)
intersect(y,x)
返回相同的集合。
GS_conut_EP<-Reduce(intersect, c(GroundStates,naMat))
lapply(GroundStates, function(x) lapply(naMat, function(y) intersect(x,y)))