【问题标题】:How to calculate intersect of elements of a list in R如何计算R中列表元素的交集
【发布时间】:2012-11-04 02:57:34
【问题描述】:

我有 10 个列表名为:Thre1Thre2Thre3...Thre10

我的输出也应该是一个列表,输出的第 i 个元素应该与我的输入列表的 ith 元素相交,例如:

output[[1]] = Reduce(intersect, 
                     list=(Thre1[[1]],Thre2[[1]],Thre3[[1]],...,Thre10[[1]])

如何编写代码以防止重复手动输入Threi[[j]]

【问题讨论】:

  • 你能提供一个可重现的小例子吗?

标签: r reduce intersect


【解决方案1】:

假设所有列表的长度相同:

lapply(1:length(Thre1), function(i)
   Reduce(intersect, list(Thre1[[i]], ..., Thre10[[i]])))

【讨论】:

  • @hora 对不起,我的第一个答案是错误的,现在我认为它是正确的。
  • 那么在列表中(Thre1[[i]],...,Thre10[[i]]) 怎么样?我应该重复列表名称还是自动生成它们?因为我有很多列表还有其他名字,比如 Rank1 ... Rank10 等等。
  • 首先要做的是将你的 10 个列表更改为列表:生活更轻松!
  • 您可以按照@Ali 的建议执行myList <- lapply(paste0("Thre",1:10),get),但从长远来看,您会更好地重组代码,首先将它们定义为列表元素
  • 问题是现在我有这么多嵌套列表,我不喜欢创建更多变量而是自动生成它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-12
  • 2021-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多