R 使用多数投票在多个列表中组合组

R 使用多数投票在多个列表中组合组,r,list,loops,grouping,purrr,R,List,Loops,Grouping,Purrr,我有一组样本和一组列表,其中每个列表的每个元素都是一个包含全部或部分样本的组(每个组始终至少有一个样本)。此外,每个列表不需要包含所有样本,但所有样本将始终包含在所有列表的所有条目中 我希望对所有列表及其条目(即样本组)使用多数票来创建包含所有样本的新分组的最终列表。如果一个样本仅出现在一个列表及其组的一部分中,则该样本将与大多数原始分组样本所在的最终组捆绑在一起 我在下面创建了一个玩具示例,概述了这个问题 仅供参考,如果可以使用数据帧/矩阵/向量找到解决方案,那么解决方案不需要是列表操作,无论

我有一组样本和一组列表,其中每个列表的每个元素都是一个包含全部或部分样本的组(每个组始终至少有一个样本)。此外,每个列表不需要包含所有样本,但所有样本将始终包含在所有列表的所有条目中

我希望对所有列表及其条目(即样本组)使用多数票来创建包含所有样本的新分组的最终列表。如果一个样本仅出现在一个列表及其组的一部分中,则该样本将与大多数原始分组样本所在的最终组捆绑在一起

我在下面创建了一个玩具示例,概述了这个问题

仅供参考,如果可以使用数据帧/矩阵/向量找到解决方案,那么解决方案不需要是列表操作,无论什么都可以。如果需要某种类型的循环,也可以

我甚至很难看到如何解决这个问题。希望下面的代码片段比描述更清楚一点我的意思:)


我对所有样本的理解是否正确?1) 单个列表可以有任意长度<代码>列表1的长度为3,
列表3的长度为5。2) 在最终输出中,没有重复任何样本,并且所有样本都只包含一次?3) 
所需的_输出
不是固定的,可能有多个组合?4) 您可以从任何列表中随机选择任何值,以便2)满足?您好。1) 对。单个列表可以是任意长度。唯一的条件是每个元素必须至少包含一个样本。2) 是的,这是正确的。3) 部分正确,即不是固定长度。样本组的组合(所需的\u输出中的元素)基于原始列表中最频繁出现的样本。4) 分组选择不是随机的,它们是原始列表中最常分组的样本。为了澄清示例
样本1
样本2
在所有4个列表中同时出现<代码>样本3
在自己的组中2/4次,一次与
样本1
样本2
在一起,因此根据多数规则,它成为自己的组
sample_4
只出现一次,因此它会被添加到原始列表中样本数最多的组中。因此,
期望输出的前两个元素是
c(“样本1”、“样本2”、“样本4”)
c(样本3)
。与
所需输出的最后2个元素类似
all_samples <- paste0("sample_",1:10)

list1 <- list()
list1[[1]] <- c("sample_1","sample_2","sample_3","sample_4")
list1[[2]] <- c("sample_5", "sample_6")
list1[[3]]<- c("sample_8", "sample_9","sample_10")

list2 <- list()
list2[[1]] <- c("sample_1","sample_2")
list2[[2]] <- c("sample_5", "sample_6")
list2[[3]]<- c("sample_7","sample_8", "sample_9","sample_10")


list3 <- list()
list3[[1]] <- c("sample_1","sample_2")
list3[[2]] <- c("sample_3")
list3[[3]] <- c("sample_5", "sample_6")
list3[[4]]<- c("sample_7","sample_8", "sample_9")
list3[[5]] <- c("sample_10")



list4  <- list()
list4[[1]] <- c("sample_1","sample_2")
list4[[2]] <- c("sample_6")
list4[[3]] <- c("sample_8", "sample_10")
list4[[4]] <- c("sample_3")

desired_output <- list(
  c("sample_1","sample_2","sample_4"),
  c("sample_3"),
  c("sample_5", "sample_6"),
  c("sample_7","sample_8", "sample_9", "sample_10")
)